29. august 2002 - 08:54Der er
6 kommentarer og 2 løsninger
StringList.Free - crash
Når jeg vælger en 250kb fil er alt ok. Men når der vælges en 5mb stor fil, crasher følgende kode ved StringList.Free men en fejl: 'Invalid pointer operation'. Nogen forklaring. Hvis jeg helt fjerner StringList.Free funker koden fint, men er det ikke snavs.
procedure TForm1.Button1Click(Sender: TObject); var StringList: TStringList; begin StringList := TStringList.Create;
OpenDialog1.Filter := 'Text files (*.txt)|*.TXT'; if OpenDialog1.Execute then begin StringList.LoadFromFile(OpenDialog1.FileName); //StringListen kværnes ...
Koden som den står her funker også for mig i D6, jeg bruger også i kværnen: StringList.Clear, StringList.Add, StringList.Sorted og StringList.Count Et eller andet giver en 'Invalid pointer operation' når StringList.Free nåes i koden.
stringlist.count - 1, skal vel kun bruges når der loopes igennem stringen. Hvis stringen skal over i et array er det vel SetLength(EtArray, StringList.Count); Fejlen ligger måske i at jeg prøver at genbruge stringListen med clear. Grubler lidt mere ...
procedure TForm1.Button1Click(Sender: TObject); var StringList: TStringList; begin StringList := TStringList.Create; try OpenDialog1.Filter := 'Text files (*.txt)|*.TXT';
if OpenDialog1.Execute then begin StringList.LoadFromFile(OpenDialog1.FileName); //StringListen kværnes ... end;
except end; StringList.Free; end;
jeg ved ikke om det hjælper, men jeg vil tro at problmmet måske ligger i at computeren måske arbejder forlangsom. Altså er stringlisten ved at blive fyldt da den for besked på at den ikke skal existere længere.
>>lanstorp Hvis alt slår fejl, så læs brug TextFile-variablen...
var F: TextFile; S: String; begin AssignFile('MinFil.txt'); Reset(F); while not Eof(F) do begin Readln(F, S); //Gør noget ved din streng... end; CloseFile(F); end;
>>lanstorp Om der sker noget ved ikke at Free'e din StringList... Tjaaa... Hvis du ikke gør det, så frigiver du bare ikke hukommelsen til andre programmer! That's all! :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.