Hey mannen en vrouwen van het goede leven!
Ik heb een stuk code in delphi, waarbij ik gebruik maak van records.
Ik krijg namelijk allerlei csv bestanden aangeleverd, soms wel bestanden tot 16 mb *.txt.
Uit analyses blijkt dat per lijn inlezen en wegschrijven de snelste is, ik wil verder geen gebruik maken van strings, want dit kost veel tijd om doorheen te lopen. Ik drop ze in m'n record, en maak daarna gebruik van FKanalen van TList, om ze vervolgens weer uit te lezen.
begin
New(kanaal);
kanaal.Time := StrToInt(Copy(tekst, 0, Pos(';',tekst)));
Delete(tekst, 0, Pos(';',tekst));
kanaal.ECG := StrToFloat(Copy(tekst, 0, Pos(';',tekst)));
Delete(tekst, 0, Pos(';',tekst));
kanaal.ECG_Filtered := StrToFloat(Copy(tekst, 0, Pos(';',tekst)));
Delete(tekst, 0, Pos(';',tekst));
kanaal.Bloeddruk := StrToFloat(Copy(tekst, 0, Pos(';',tekst)));
Delete(tekst, 0, Pos(';',tekst));
kanaal.Ademhaling := StrToFloat(Copy(tekst, 0, Pos(';',tekst)));
Delete(tekst, 0, Pos(';',tekst));
kanaal.Doppler := StrToFloat(Copy(tekst, 0, Pos(';',tekst)));
FKanalen.Add(kanaal);
end;
maar vroeg me af of dit niet korter kan, want ik moet nog andere procedures maken, en om dan dit gedeelte nog 3 x langer te maken. Ik heb overigens niks kunnen vinden wat zo naar het item uit de record kan gaan om een simpel for-lusje te maken en dus een stuk korter wordt.
THanks!!!
Roetje
Ik heb een stuk code in delphi, waarbij ik gebruik maak van records.
Ik krijg namelijk allerlei csv bestanden aangeleverd, soms wel bestanden tot 16 mb *.txt.
Uit analyses blijkt dat per lijn inlezen en wegschrijven de snelste is, ik wil verder geen gebruik maken van strings, want dit kost veel tijd om doorheen te lopen. Ik drop ze in m'n record, en maak daarna gebruik van FKanalen van TList, om ze vervolgens weer uit te lezen.
begin
New(kanaal);
kanaal.Time := StrToInt(Copy(tekst, 0, Pos(';',tekst)));
Delete(tekst, 0, Pos(';',tekst));
kanaal.ECG := StrToFloat(Copy(tekst, 0, Pos(';',tekst)));
Delete(tekst, 0, Pos(';',tekst));
kanaal.ECG_Filtered := StrToFloat(Copy(tekst, 0, Pos(';',tekst)));
Delete(tekst, 0, Pos(';',tekst));
kanaal.Bloeddruk := StrToFloat(Copy(tekst, 0, Pos(';',tekst)));
Delete(tekst, 0, Pos(';',tekst));
kanaal.Ademhaling := StrToFloat(Copy(tekst, 0, Pos(';',tekst)));
Delete(tekst, 0, Pos(';',tekst));
kanaal.Doppler := StrToFloat(Copy(tekst, 0, Pos(';',tekst)));
FKanalen.Add(kanaal);
end;
maar vroeg me af of dit niet korter kan, want ik moet nog andere procedures maken, en om dan dit gedeelte nog 3 x langer te maken. Ik heb overigens niks kunnen vinden wat zo naar het item uit de record kan gaan om een simpel for-lusje te maken en dus een stuk korter wordt.
THanks!!!
Roetje
[ Voor 24% gewijzigd door Verwijderd op 28-02-2007 12:20 ]