Pisze sobie program odczytujący log z EKG w ładny sposób. Wszystko działa na małych plikach z historią. Moja metoda odczytu numerów GG z loga i usunięcie się powtarzających dla 2 mb pliku to jakieś 40 sekund. Jednak np. mój log ma 78 mb :D. Czekałem i się nie mogłem doczekać przez 50 minut.
Metoda jest taka:
AssignFile(F, 'history');
Reset(F); // otwarcie pliku
try
while not Eof(F) do
begin
List := TStringList.Create;
Readln(F, linia);
ExtractStrings([','], [],pchar(linia), List);
//list[2] to odczytany nick, a list[1] to numer gg
if not ListBox1.Items.IndexOf(List[2]+' - '+list[1]) > -1 then
ListBox1.Items.Append(List[2]+' - '+list[1]);
//Jak widzicie powyższa część kodu zapobiega dodawaniu do listboxa wpisów, które na nim już są.
end;
finally
CloseFile(F);
end;
W 80 MB pliku historii numerów gg jest tysiące więc procedurka musi się nieźle napracować. Jest jakiś szybszy sposób usuwania powtarzających się wpisów z listy?