w kółko wczytuje tą samą linię

0

Witam, chciałbym zrobić program, który wczytuje z pliku config.dat opis mojego obecnego opisu a potem go zmienia. Mam problem z wczytaniem, ponieważ wczytuje mi 3 razy ten sam wyraz a potem kończy wczytywanie (wyraz to cfg1):

procedure TForm1.Button1Click(Sender: TObject);
var
plik:TextFile;
r : array[1..1000] of AnsiString;
i,j:integer;
begin
i:=0;
AssignFile(plik, 'C:\Documents and Settings\jj\Gadu-Gadu\Łukasz\config.dat');
Reset(plik);
repeat
i:=i+1;
Read(plik, r[i]);
until eof(plik);
CloseFile(plik);

AssignFile(plik, 'dane.txt');
ReWrite(plik);
for i:=1 to i do
begin
 Write(plik, r[1]);
end;
CloseFile(plik);
ShowMessage('koniec');

for i:=1 to i do
begin
 ShowMessage(IntToStr(i) + ':' +r[1]);
end;
0

Po pierwsze nie łam konwencji pascala, czyli powinna być konstrukcja:

while not Eof(F) do
begin
  // odczyt
end;

Po drugie: wykorzystaj klasę TStringList:

sl := TStringList.Create();
sl.LoadFromFile('C:\Documents and Settings\jj\Gadu-Gadu\Łukasz\config.dat');

// operacje na stringach

sl.Free();
0
Autre napisał(a)
for i:=1 to i do
begin
 Write(plik, r[1]);
end;


for i:=1 to i do
begin
 ShowMessage(IntToStr(i) + ':' +r[1]);
end;

Razi w oczy ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1