Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi datei einlesen und in memo schreiben (https://www.delphipraxis.net/16099-datei-einlesen-und-memo-schreiben.html)

jority 10. Feb 2004 15:17

Re: datei einlesen und in memo schreiben
 
oh man jungs ich liebe euch
so hat es wunderbar gefunzt jetzt kann ich endlich weiterarbeiten.

fettes DANKESCHÖN an euch!

gruß Jority

jority 11. Feb 2004 08:38

Re: datei einlesen und in memo schreiben
 
oh shit mir ist da jetzt ein grausamer Fehler aufgefallen.
ich habe mir das mal angesehen was im Memo steht und mir ist dabei aufgefallen das komplette Zeilen fehlen.
da diese Zeile zwischen #0A#00 und #0A stehen.
weiß jemand wie ich diese Datei einlesen kann um trotzdem alle zeilen im memo stehen zu haben.
Stichwort Binär einlesen?

gruß jority

Tpercon 11. Feb 2004 13:07

Re: datei einlesen und in memo schreiben
 
So ist das alles viel zu theoretisch was du hier an Infos bringst. Kannst du die Datei mit NotePad oder sonstwas korrekt öffnen?

Zitat:

Zitat von jority
#0A#00 und #0A stehen.

Was sollen das denn für Zeichen sein? Wie hast du diese denn ausgelesen bekommen?

jority 11. Feb 2004 13:34

Re: datei einlesen und in memo schreiben
 
so hier ein kurzer ausschnitt
da beginnt eine neue rechnung:

@START@ 078693 96611 TU

so das Problem ist das ganz am Anfang der Datei dieses noch mit eingelesen wird, dies aber später nicht mehr mit angezeigt wird.
wenn man das ganze im Hex anschaut dann sieht es so aus als würde an dieser Stelle eine komplett neue Datei stehen die dann bis zum nächsten:
@START@ 078693 96611 TU
geht.

irgendwie ist das ziemlich verwirrend und das scheit das memo bzw. delphi genauso zu sehen.
(mein arbeitskollege hat angeregt die datei binär einzulesen und dabei nach diesen zeichen zu suchen)

gruß jority

Christian Seehase 11. Feb 2004 16:01

Re: datei einlesen und in memo schreiben
 
Moin Jority,

Du könntest Die Datei, ähnlich wie's der Kollege vorgeschlagen hat, mit Hilfe von Hier im Forum suchenTFileStream in eine Stringvariable einlesen (Beispiele dazu solltest Du hier reichlich finden können), und dann mit mittels Hier im Forum suchenStringReplace die #00 aus dem String löschen. Anschliessend kannst Du den String dann der Eigenschaft Text des Memos zuweisen.

Bei grösseren Dateien müsstest Du die Datei dann sinnvoller Weise Blockweise einlesen, aber auch dafür kannst Du einen String als Buffer verwenden.

Ob die Verwendung von StringReplace auf die Performance drückt, so dass vielleicht ein anderes Verfahren angewendet werden sollte, müsstest Du mal testen.

BTW:
Der Zeilenvorschub wäre i.d.R. unter Windows #13#10 bzw #$0D#$0A. Nur #10 (bzw. #$0A) wäre in Windows nur in Ausnahmefällen oder bei Unixdateien anzutreffen.
Wird eine Datei die nur #10 als Zeilentrenner verwendet in eine StringList eingelesen (wie eben auch Memo.Lines) korrigiert Delphi dies intern auf #13#10.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz