/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
søgning og udvælgelse i en text fil som ko~
Fra : HT


Dato : 27-10-03 12:57

Hej,
jeg har en tekst fil fra en benzinstation, hvor jeg vil overføre alle
tilgodesedler til en ny fil.

Mit problem er at ikke alle tilgodesedler overføres til den nye fil.

Hvorfor?
Er der noget i filen som kan bremse søgningen?
Eller er der en variabel som bliver fuldt op?

Filen kan være rimelig stor (over 200 sider).

Håber der er en som kan hjælpe.

Med venlig hilsen
Harald Thomsen

Eksempel på filen
02003-08-30 10:12 T01-N4082
0INDBETALT BEL\B 50 DKK
0BLYFRI 92 6.27 LI 50.00 DKK
0P01 7.97 KR/L
02003-08-30 10:15 T01-N4083
0INDBETALT BEL\B 400 DKK
0BLYFRI 95 49.81 LI 400.00 DKK
0P02 8.03 KR/L
02003-08-30 10:18 T01-N4084
0INDBETALT BEL\B 50 DKK
0BLYFRI 95 3.90 LI 31.32 DKK
0P02 8.03 KR/L
0TILGODE 18.68 DKK
02003-08-30 10:25 T01-C6512
0BLYFRI 92 50.43 LI 401.93 DKK
0P01 7.97 KR/L
0HYDRO TEXACO KORT
0NR 704102000000???????
02003-08-30 10:28 T01-C6513
0DIESEL 74.58 LI 444.50 DKK
0P04 5.96 KR/L
0HYDRO TEXACO KORT
0NR 704102000000???????
02003-08-30 10:37 T01-C6514
0BLYFRI 95 52.65 LI 422.78 DKK
0P02 8.03 KR/L



procedure TForm1.findtilgodesedlerClick(Sender: TObject);
var
indfil, tempfil, udfil: TextFile;
betaling, literpris, dato, tid, liter, vare, belb, tilgode, indbetalt:
String;
S: String;
i: Integer;
buffer: array [1..5] of string;

begin
if OpenDialog1.Execute then
begin
AssignFile(indfil, OpenDialog1.FileName);
reset(indfil);
deletefile('c:\unox\tempfil.txt');
rewrite(tempfil, 'c:\unox\tempfil.txt');
deletefile('c:\unox\tilgode.txt');
rewrite(udfil, 'c:\unox\tilgode.txt');

// erstat , med . ;
while not eof(indfil) do
begin
readln(indfil, S);
For i:=1 to Length(S) do
if S[i]='.' then S[i]:=',';
writeln(tempfil, S);
end;
CloseFile(indfil);
CloseFile(tempfil);
end;

// indlæs alle TILGODE sedler
begin
try
assignfile(tempfil,'c:\unox\tempfil.txt');
reset(tempfil);

// Overskrift i filen
writeln(udfil, 'Dato ;tid ;Betaling;Slags ;Pris ;Liter
;Beløb ;Tilgode;Indbetalt');

try
buffer[1]:= '';
buffer[2]:= '';
buffer[3]:= '';
buffer[4]:= '';
buffer[5]:= '';


while not eof(tempfil) do
begin
buffer[1]:= buffer[2];
buffer[2]:= buffer[3];
buffer[3]:= buffer[4];
buffer[4]:= buffer[5];
readln(tempfil, buffer[5]);

// hvis TILGODE findes kopieres værdierne til de enkelte
variable
if (pos('TILGODE', buffer[5])>0) then
begin
betaling := 'KONTANT';
literpris := copy(buffer[4],13,5);
dato := copy(buffer[1],2,10);
tid := copy(buffer[1],13,5);
liter := copy(buffer[3],12,6);
vare := copy(buffer[3],2,10);
belb := copy(buffer[3],21,7);
tilgode := copy(buffer[5],15,7);
indbetalt := copy(buffer[2],18,7);

// Udskriver værdier for hver enkelt TILGODE seddel
til filen
write(udfil, dato);
write(udfil, ';');
write(udfil, tid);
write(udfil, ';');
write(udfil, betaling);
write(udfil, ';');
write(udfil, vare);
write(udfil, ';');
write(udfil, literpris);
write(udfil, ';');
write(udfil, liter);
write(udfil, ';');
write(udfil, belb);
write(udfil, ';');
write(udfil, tilgode);
write(udfil, ';');
writeln(udfil, indbetalt);
end;
end;
except
showmessage('Fejl ved læsning af fil');
end;
CloseFile(tempfil);
except
showmessage('Fejl ved åbning af fil');
end;
end;

end;

vh
harald



 
 
Henry (27-10-2003)
Kommentar
Fra : Henry


Dato : 27-10-03 20:32

> jeg har en tekst fil fra en benzinstation, hvor jeg vil overføre alle
> tilgodesedler til en ny fil.
>
> Mit problem er at ikke alle tilgodesedler overføres til den nye fil.
>
> Hvorfor?


Uden at kikke på hvad i alverden du laver så vil jeg gætte på at du mangler
at lukke din udfil (closefile), derved kan der ligge noget i cache som
aldrig bliver skrevet til filen.

mvh
Henry



HT (28-10-2003)
Kommentar
Fra : HT


Dato : 28-10-03 08:22

Hej Henry,
det løste mit problem - mange tak.

vh
Harald
-----------------------------------------
"Henry" <henry@nomail.com> skrev i en meddelelse
news:3f9d7267$0$9805$edfadb0f@dread14.news.tele.dk...
> > jeg har en tekst fil fra en benzinstation, hvor jeg vil overføre alle
> > tilgodesedler til en ny fil.
> >
> > Mit problem er at ikke alle tilgodesedler overføres til den nye fil.
> >
> > Hvorfor?
>
>
> Uden at kikke på hvad i alverden du laver så vil jeg gætte på at du
mangler
> at lukke din udfil (closefile), derved kan der ligge noget i cache som
> aldrig bliver skrevet til filen.
>
> mvh
> Henry
>
>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste