Entwickler-Ecke

Dateizugriff - Textdateien schnellstmöglich laden und nach Excel übertragen


Gunnar - Mi 29.10.03 17:34
Titel: Textdateien schnellstmöglich laden und nach Excel übertragen
Hallo, Leute!

Das sequentielle Laden in Delphi 5 und das Übertragen der Strings aus einer 10MB - Textdatei nach Excel 97 per OLE dauert ewig. Kennt jemand schnellere Möglichkeiten zum Einlesen / Übertragen von solchen Textdateien?
Möglich wäre komplett in Variable (TFileStream) einlesen. Wäre dies die schnellste Methode zum Einlesen und wenn ja, wie kann ich damit auf einzelne Zeilen zugreifen?
Bei Excel 97 wäre der direkte Zugriff auf die xls-Datei per biff8 am Schnellsten, aber wie kann ich am Schnellsten Excel 97 (ohne OLE) fernsteuern, also Strings an eine laufende Excel-Applikation schicken?

Eine Aufteilung der Textdateien ist nicht möglich, da diese von einem anderen Programm erstellt werden.

Ich hoffe, Ihr habt darauf eine Antwort und könnt mir helfen


toms - Mi 29.10.03 19:55

Hi!

Du könntest deine Text-Datei umbenennen in .xls und diese Datei
kann dann problemlos mit Excel geöffnet werden.


Gunnar - Mi 29.10.03 20:16

Hi Tom!

Danke für den Tipp. Habe es gerade versucht. Ja, die Textdatei wird tatsächlich etwas schneller geladen, wenn man sie in ".xls" umbenennt. Aber kennst Du zufällig auch eine schnellere Methode zum Einlesen von Textdateien in Delphi 5? Es sollte schneller gehen als sequentiell auslesen. Dachte da an TFileStream, nur kenne ich mich damit überhaupt nicht aus, vor allem, wie man damit auf einzelne Zeilen zugreifen kann.


MSCH - Mi 29.10.03 21:10

wieso einlesen? Man kann doch heutzutage files direkt mappen. Schau dir mal im SDK die CreatefileMapping und ff an. Im prinzip wird deine Riesendatei in Stücken direkt durch das BS in den Speicher eingeblendet und simple ausgedrückt, musst du nur mit einem Zeiger durchlaufen.
Das sollte das schnellste sein - leider auch das komplizierteste.
grez
msch


Gunnar - Mi 29.10.03 21:38

Hey, cool, gute Idee, habe ich bisher noch nix davon gehört oder gelesen, werde ich sofort ausprobieren. Danke vielmals!!


Gunnar - Mi 29.10.03 22:36

Hey, cool, gute Idee, habe ich bisher noch nix davon gehört oder gelesen, werde ich sofort ausprobieren. Danke vielmals!!