Toon posts:

Records doorlopen

Pagina: 1
Acties:

Verwijderd

Topicstarter
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

[ Voor 24% gewijzigd door Verwijderd op 28-02-2007 12:20 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

Hoi Roetje en welkom op GoT :)

Welke taal/ontwikkelomgeving is dit? Ik gok op Delphi.

Daarbij vraag ik me af wat je nu zelf al hebt geprobeerd om je code korter te krijgen en wat er niet mee lukte. Hier op GoT gaan we er vanuit dat je zelf in eerste instantie aan de slag gaat en dat je ook meld hoe en wat in de topicstart. Dit mist nu volledig.

Er zijn ook voor Delphi handigere manieren om een string te splitten op een ; zodat het in een array komt die je makkelijker kan gebruiken. Zie bijv. http://www.google.com/sea...8&startIndex=&startPage=1

Zou je voor een volgende keer Programming Beleid en dan met name Programming Beleid - De Quickstart eens door willen lezen? Dan weet je meteen wat we van iemand verwachten voordat je een topic opent en hoe we graag zouden willen zien hoe een topicstart eruit ziet.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
Creepy schreef op woensdag 28 februari 2007 @ 11:10:
Hoi Roetje en welkom op GoT :)

Welke taal/ontwikkelomgeving is dit? Ik gok op Delphi.

Daarbij vraag ik me af wat je nu zelf al hebt geprobeerd om je code korter te krijgen en wat er niet mee lukte. Hier op GoT gaan we er vanuit dat je zelf in eerste instantie aan de slag gaat en dat je ook meld hoe en wat in de topicstart. Dit mist nu volledig.

Er zijn ook voor Delphi handigere manieren om een string te splitten op een ; zodat het in een array komt die je makkelijker kan gebruiken. Zie bijv. http://www.google.com/sea...8&startIndex=&startPage=1

Zou je voor een volgende keer Programming Beleid en dan met name Programming Beleid - De Quickstart eens door willen lezen? Dan weet je meteen wat we van iemand verwachten voordat je een topic opent en hoe we graag zouden willen zien hoe een topicstart eruit ziet.
yess, sorry, zal erop in het vervolg. Mijn welnederige excuses!
Wat betreft de o.a. spilt functie, dus ook andere string-functies, die gebruik ik liever niet, hier maak ik namelijk (nog) vaker gebruik van functies voor strings, dit kost met zo'n grote bestanden relatief meer tijd om doorheen te werken.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12:53

Janoz

Moderator Devschuur®

!litemod

En waarom denk je dat 1 split per regel aanroepen zwaarder is dan al die pos aanroepen?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
bij het voorbeeld maken ze eerst gebruik van een stringlist, terwijl dit niet eens hoeft, maar je krijgt hier wel een 1 dimensionale-array terug, die dus wel eerst de string bewerkt, met de copy-functie retourneert hij 1 x een string, en hoef k verder geen gebruik te maken van andere string-functies. Geloof ik tenminste.. Maar hier ging het niet helemaal om. Als ik iets in de richting van een for-lus kan doen, kan k uiteraard altijd alsnog een split functie gebruiken als k het verkeerd heb..