Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Delphi - čtení se souboru

Dobrý den.
Mam soubor, který potřebují načíst do StringListu.
Potřebují však, aby začal od 2 řádku a načítal se souboru po dvou řadicích a ukládal ty dva řádky do StringList do jednoho řádku oddělené nějakým separatorem.

myStrLst.Add(nactenyradek +'^'+ nactenyradek1);

   AssignFile(myFile, 'mujsoubor');
   Reset(myFile);
   ReadLn(myFile,nactenyradek);
   while not Eof(myFile) do
   begin
     ReadLn(myFile,nactenyradek);
     if Eof(myFile)= true then  Exit;
     ReadLn(myFile,nactenyradek1);
     myStrLst.Add(nactenyradek +'^'+ nactenyradek1); 
   end;
   CloseFile(myFile);    

Je to ok ale po načtení mi vyskočí toto.
eeee.png
Kde dělám chybu?

Předmět Autor Datum
Jsi si jisty, ze ten index out of range je zpusobeny timto kodem? Podle mne k tomu dojde až později.…
Jan Fiala 16.06.2017 09:27
Jan Fiala
Tvoje tajne vyvojove prostredie urcite umoznuje aj debugging, tym si zistis ze kde mas problem a opr… poslední
MM.. 16.06.2017 10:17
MM..

Jsi si jisty, ze ten index out of range je zpusobeny timto kodem? Podle mne k tomu dojde až později. Index ve stringlistu je cislovany od nuly a ty se podle mne snažíš natvrdo číst index 1.
Uvnitř cyklu si změň

if Eof(myFile)= true then  Exit;

na

if Eof(myFile) then break;

Rozdíl je v tom, že tvůj Exit vyskočí úplně z procedury, zatímco break ukončí cyklus a korektně uzavře soubor, který máš za cyklem.

Zpět do poradny Odpovědět na původní otázku Nahoru