| Autor |
Beitrag |
olga
Hält's aus hier
Beiträge: 10
|
Verfasst: Do 28.08.03 13:42
Hi,
habe ein Eingabe-Problem. Wenn Datensaetze (Koordinatenangaben) sehr gross sind, muessen aber doch als Ganze eingelesen werden, dauert es durch TextFile-Reading zu lange. Ob es geht, irgendwelche streams zum Einlesen zu benutzen? Es ist auch so, dass ich die Trennpunkte (z.B. 234.6) gleichzeitig in , umwandeln muss... Also, hat jemand damit eine Erfahrung gemacht?
Moderiert von Aya: Thread verschoben.
|
|
MAlsleben
      
Beiträge: 303
W2k,WinXP
D3 - DXE3 Enterprise
|
Verfasst: Do 28.08.03 15:09
Hi,
ich habe mal etwas ähnliches aber auch mit textdateien und den "alten" Pascal-Textdatei lesen und schreiben Prozeduren gemacht. Nach assignfile habe ich noch vor dem öffnen einen 8 kb Textbuffer mit settextBuffer erstellt. Wenn ich keinen eigenen Textbuffer setze, ist der Standartbuffer für diese Operation nur 128 byte groß. Das ist für heute Rechner nichts und bremmst nur. Natürlich kann man den Buffer auch noch größer machen. Grenze ist mir soweit nicht bekannt. In meinem Programm werden dann ca. 6 MB große Dateien in 2 Sekunden durchlaufen und in jeder Zeile z.B. Leerzeichen durch Nullen ersetzt.
Gruß Micha.
_________________ Viele Wege führen nach Rom.
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Do 28.08.03 20:27
du könntes TFileStream verwänden damit geht das zimlich schnell und mi Twriter und Treader kannst du sehr einfach auf einem stream zugreifen *g*
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
recall
      
Beiträge: 449
|
Verfasst: Mo 01.09.03 13:17
Hallo,
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| procedure CopyFile(InName, OutName); var inF, outF: TMemoryStream; I: Integer; C: Byte; begin inF := TMemoryStream.Create; outF := TMemoryStream.Create; try inF.LoadFromFile(InName); inF.Position := 0; For I := 0 to InF.Size - 1 do begin inF.Read(C, 1);
outF.Write(C,1); end; outF.SaveToFile(OutName); finally inF.Free; outF.Free; end; end; |
muss aber nicht auf Anhieb funktionieren  Achso der Quellcode kopiert eine Datei... Lies am besten dazu MemoryStream.Read/Write druch (Delphi Hilfe)...
Siehe aber auch FileStream: Posting von mimi.
Viele Grüsse.
P.S.: Wenn ich Mist geschrieben habe, dann wird der hier versteigert.
Anfangsgebot 1?.
Moderiert von Tino: Code- durch Delphi-Tags ersetzt.
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Mo 01.09.03 17:07
eine frage warum gehst du über "TMemoryStream" ?
und nicht über "TFileSystem" was schneller sein dürfte.
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
recall
      
Beiträge: 449
|
Verfasst: Mo 01.09.03 19:55
@mim: weil ich es mit Strg+V eingefügt und nicht darauf geachtet habe, wozu ichs eigentlich ursprünglich geschrieben hatte  ...
Danach war ich zu blöd dazu es ordentlich zu editieren  .
Also => FileStream !
Viele Grüsse.
|
|
recall
      
Beiträge: 449
|
Verfasst: Mo 01.09.03 19:57
apropos:
| Zitat: | | und nicht über "TFileSystem" was schneller sein dürfte |
"TFile System" ?? 
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Mo 01.09.03 20:31
| Zitat: |
apropos:
Zitat:
und nicht über "TFileSystem" was schneller sein dürfte
"TFileSystem" ??
|
ich meinte TFileStream, immer wenn ich an TFileStream denke schreibe ich satt stream system hin *G*
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
olga 
Hält's aus hier
Beiträge: 10
|
Verfasst: Di 02.09.03 11:40
Ich bedanke mich bei allen Kollegen!!! Also, probiere ich jetzt mal... 
|
|
olga 
Hält's aus hier
Beiträge: 10
|
Verfasst: Di 09.09.03 09:28
Titel: dies da...
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Di 09.09.03 17:09
setzt dich am besten mal mit TFileStream auseinandern dann sollte dein problem gelöst sein. und das auseinander trennen von 100.5 ist auch nicht weiter schwer such am besten mal nach GetTocken hier im forum
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
barfuesser
      
Beiträge: 324
|
Verfasst: Di 09.09.03 17:13
| mimi hat folgendes geschrieben: | | such am besten mal nach GetTocken hier im forum |
also ich würde GetToken vorziehen.
barfuesser
|
|