To karel.laska :
Je to sice divny, ale odpovím si sám, třeba to někomu pomůže.....
Nakonec po dlouhém hloubání , ptaní a zkoušení, mě nakopli hnedle dva lidi. Já tu DB pouze načetl, avšak nesetřídil, takže se mi tím rozhodilo celé pořadí.. Za vaši ochotu dík Karel
Příspěvky odeslané z IP adresy 89.190.90.–
Zdarec,
děkuji všem za ochotu pomoci....
Píšu prográmek ve VB6 kde načítím accesovou databazi. Vše mi funguje jak má, jakmile se však přesunu tímto: databaze2.Recordset.MoveLast na poslední záznam, nejsem na posledním záznamu,ale asi 15 záznamů před ním.
Jakmile se přesunu tímto: databaze2.Recordset.MoveFirst , skočí mi to asi na 3tí od konce.
Do této databáze zapisuju z nekolika programů, nevím zda je to možné, zda VB neuložím jakousi info, která mi neoznačí konec databáze, nebo něco.
Jinak tady je celý kod..
databaze2.RecordSource = "select * from Automat1sdaty "
databaze2.Refresh
databaze2.Recordset.MoveLast
MsgBox (databaze2.Recordset.RecordCount)
Msgbox ukaže celou délu databaze, ale posunuti v databazi je na miste o kterem jsem psal.
Za jakýkoli váš nápad dík.
To liborb :
Uz jsem vyresil tento problemek. vkladal jsem to vedle obrazku a pak nasouval do nej, ale ja musim vlozit do obrazku :-)
diky ale za Vas cas
Zdarec lidi,
řeším malinký problémek a to je vložení Labelu na obrázek... Vždy se mi nacpe za něj a přenesení do popředí mi nejde.
Na upřesněnou jedu v VB 6.
Za Vaše nápady díky
To Mircosoft : Pořád nějak nevím jak mám ten čas "zabalit" potřeboval bych prosím nějaký konkrétní příklad, kdy dostanu čas, zabalim a časem ho porovnám s jiným ... plus okolo ty všechny proměnné.
Takle je to pro mě stále španělská vesnice bohužel :(
Jo a taky co to je to inc? :)
To Mircosoft : Děkuju moc, ještě bych potřeboval poradit s tím odhadováním zbývajícího času.
Můj program čte řádky z txt souboru a jejich počet je pokaždé jiný.
Dle mého by se zbýcající čas měl rovnat tomuto: průměrná doba doposavaď přečtených řádků * (celkový počet řádků - aktuální počet přečtených řádků) . Ale tahle hodnota i přes to, že by se měla stále více a více uklidňovat díky průměrné době čtení, tak skáče sem tam sem tam.
Nemáš na to Microsoft nějakou fintu taky?
To Krychlik : Prosimte te pekne muzes mi to nejak rozepsat podrobneji? Udelej mi z toho priklad, kdy ja ctu radky nejaky textovyho souboru jako nahore a na kazdym radku zjistuju cas jakej ubeh mezi jedtnolivymi radky.
Resp s timto jsem si uz poradil i ja, i kdyz hrozive :)
GetTime(hA,mA,sA,msA);
if msA<msP then msR:=(100-msP+msA) else msR:=msA-msP;
if sA<sS then sR:=60-sS+sA else sR:=sA-sS;
if ((sR=0)and(mCA=0)) then begin mC:=mC+1; mCA:=1; end;
if ((mC=60)and(hCA=0)) then begin hC:=hC+1; mC:=0; hCA:=1; end;
if sR<>0 then mCA:=0;
if mC<>60 then hCA:=0;
Ale ať se snažim jakkoli, nejde mi udělat aby to dokázalo odhadovat zbývající čas, resp ono to neco odhaduje,ale tak silene to skace, ze vazne nevim jak to uklidnit matematicky :(
zkousel sem vytvaret vsemozne prumerne hodnoty casu mezi jednotlivymi radky a pak jejich vynasobeni poctem radku do konce programu. Taky jsem zkousel vzit jiz uplynuly cas a pocet radku kolik to zvladlo, vydelit mezi sebou a pote vynasobit zbyvajicim poctem radku pro ten novej cas .. nefunguje. problem asi je,ze v mem pripade sou ty promenny typu word (nevim prave jestli je muzu mit treba jako real a tak. To sem radeji nezkousel.
Přidávám teda už konkrétní problém:
repeat
readln(file,radek)
GetTime(hA,mA,sA,msA);
if msA<msP then msR:=(100-msP+msA) {tohle by melo resit,kdy se setina prevali pres celou}
else msR:=msA-msP;
msC:=msC+msR;
if sA<sP then sR:=(60-sP+sA) {tohle kdyz se vteriny prevali pres 60 sekund}
else sR:=sA-sP;
if mA<mP then mR:=(60-mP+mA)
else mR:=mA-mP;
if hA<hP then hR:=(60-hP+hA)
else hR:=hA-hP;
if msC>=100 then begin sC:=sC+1; msC:=msC-100; end;
if sC>=60 then begin mC:=mC+1; sC:=sC-60; end;
if hC>=60 then begin hC:=hC+1; mC:=mC-60; end;
{tenhle kod uz jen resi pismenka a vypisovani nenulovych hodnot jako 0 hodin}
writeln(' -');
write(' - Uplynulý čas: ');
if hC=1 then koncovka:='a' else koncovka:='y';
if hC>=1 then write(hC,' hodin',koncovka);
if mC=1 then koncovka:='a' else if ((mC>1)and(mC<5)) then koncovka:='y'
else koncovka:=' ';
if mC>=1 then write(mC,' minut',koncovka);
msP:=msA; sP:=sA; mP:=mA; hP:=hA;
if ((mC>=1)or(hC>=1)) then write(' a');
if sC=1 then koncovka:='a' else if ((sC>1)and(sC<5)) then koncovka:='y'
else koncovka:=' ';
writeln(' ',sC,' sekund',koncovka);
{zde se pak deje spouusta cinnosti cteni radku ze souboru a jedno cteni radku trva tak zlomecek sekundy}
until eof(file);
hodnoty A jsou Aktualni, P jsou Puvodni z predchoziho stavu a C jsou celkove soucty casu.
Nekde tam je chyba,protoze to spatne pocita rozdily casu a vyhazuje to nesmyslne hodnoty.
A nejak uz vazne nevim kde a jak co :(
Prosiiim,smutne koukam :(
Konkrétně mám na mysli začátek procesu začne v čase tom a tom, uplyne nějaká doba a poté program opět vypíše čas kdy proces zkončil. A také zjistí jak dlouho to trvalo.
Plus samozřejmě z těchto údajů budu chtít tahat přibližný čas ukončení procesu jako při například kopírování ve Win.
Prosím prosím, pomoc :(
To Mircosoft : :D
Tak tos mě teda úplně tozbil, takový kvantum informací :D
Mno, co sem pobral a eště chápal, programuju pro Windows, přičemž uses používám dos,crt.
Ale teďkon jsem zkusil uzavřít ten soubor a ono to tam je!!!! JUpíííííí :D
Nj,ono asi pul milionu řádků se jen tak na rychlo neuloží do toho souboru než se ten program zavře :)
A tamty všechny ostatní rady ... to si ještě několikrát přečtu a snad to pochopím jakym jazykem kromě Pascaloviny si to na mě mluvil :D
Děkuju moc
Nyní mám problém se čtením souboru až do konce, ale nevím proč.
if fR=1 then begin
assign(compile,filename);
assign(temp,'System/Temporary.txt');
rewrite(temp);
reset(compile);
repeat q:=0; OC:='';
readln(compile,O);
d:=integer(O[0]);
for k:=1 to d do
begin
p:=char(O[k]);
if ((p='G')or(p='M')or(p='X')or(p='Y')) then q:=1;
if q=1 then OC:=OC+p;
end;
writeln(temp,OC)
until eof(compile);
Na písmena G,M,X,Y narazí vždy, na jedno z nich na každém řádku.
Ono to ten soubor přepíše celý, ale několik málo posledních řádků ne prostě.
Udám jako příklad: soubor má 10 000 řádků, ale překopíruje jich pouze 9 995. 100 000, překopíruje pouze 99 995.
Proč?!?!?!?
Díky moc za všechno :)
Teď už to dohromady dám v pohodě.
To Laaca : Nene,kdepak, tamto první zadání bylo správně, já totiž neznám název toho souboru, ten se mění.
Např:
CrCo10-17-2009-07-21_112242_0101(2).ngc
CoCr12-8_153046_0101.ngc
nemá to v sobě logiku a je to pokaždý jiný, jde o textový soubor pokaždé,žádný file of něco.
Tohle je můj přepracovaný kód z vaší pomoci.
program vyhledavac;
uses dos,crt;
var k,v,b:integer;
Procedure VypisSoubor(f:SearchRec);
begin
k:=k+1;
if b=0 then begin
write(' ',k,') - ');
writeln(f.name);
end;
if ((b=1)and(k=v)) then begin
writeln; writeln(f.name); readln;
end; end;
Procedure VypisSeznamSouboru(maska:string;skryte:boolean);
var f:SearchRec; i:integer;
begin
if skryte then i:=ReadOnly+Archive+Hidden+SysFile
else i:=ReadOnly+Archive+SysFile; FindFirst(maska,i,f);
while doserror=0 do begin
VypisSoubor(f);
FindNext(f); end; end;
begin
clrscr;
k:=0; v:=0; b:=0;
VypisSeznamSouboru('*.ngc',false);
b:=1; k:=0;
writeln('Ktery program chcete kompilovat?'); readln(v);
VypisSeznamSouboru('*.ngc',false); end;
end.
Tak,tohle zjistí všechny soubory té koncovky, sám si vyberu který chci, ale už nevím jak si tu proměnou uchovat... a do souboru se mi to ukládat nechce. A nějak mi nejde udělat proměnou string a pak říci, že f.name:=tomu stringu.
To TooM7 : Nj,to mě nikdy nenapadlo :D Děkuju, ale pořád mi můj hlavní cíl uniká :(
To Laaca : Tak,a teď mam teda jinej problém, podle tohohle skriptu je potřeba používat uses dos;
Ale já potřebuju používat uses crt; (kvůli tomu,že dos režim nepodporuje clrscr; a já potřebuju obrazovku promazávat)
Můžu to nějak zkombinovat dohromady?
A dále: Já trošku upřesním situaci. Mám adresář kde je program uložen, stejně tak i tam je nahrán soubor libovolného jména s koncovkou ngc. Ten soubor potřebuji načíst jako aktivní.
Jak toho dosáhnu? Ještě bych potřeboval trochu podrobněji vysvětlit ten řádek: "writeln(f.name:12,#9,' (',f.size,' B)');" Jak přesně funguje to f.name:12,#9.
Opět moc děkuju, tyhle věci jsou už úplně mimo mě :(
Moc prosím o pomoc s tímto oříškem.
Potřebuju nějaký jednoduchý postup jak nalézt ve složce kde je program uložen nalézt všechny soubory s určitou koncovkou a nechat je třeba vypsat jako seznam.
Jde mi především o to jejich vyhledání.
Děkuju předem moc za reakce a rady.