| Autor | Beitrag | 
| Bronstein 
          Beiträge: 578
 Erhaltene Danke: 1
 
 WIN XP
 Delphi 6 / Delphi 2006 / Delphi XE
 
 | 
Verfasst: Sa 28.01.12 13:10 
 
Hallo,
ich versuche die Datei im Anhang zu öffnen und auszulesen, ich bekomme es aber nicht hin. Habe es schon mit
 TStringList
 Memo.loadformfile
 TFileStream
 
 versucht.
 
 Mit dem normalen Windows Editor kann ich die Datei öffnen!
 
 Kann mir jemand helfen?
 
Einloggen, um Attachments anzusehen!
 
_________________ Es gibt keine dummen Fragen nur dumme Antworten!!!
 | 
|  | 
| Perlsau Ehemaliges Mitglied
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Sa 28.01.12 13:46 
 
	  |  Bronstein hat folgendes geschrieben  : |  	  | Hallo, ich versuche die Datei im Anhang zu öffnen und auszulesen, ich bekomme es aber nicht hin. Habe es schon mit
 TStringList
 Memo.loadformfile
 TFileStream
 versucht. Mit dem normalen Windows Editor kann ich die Datei öffnen! Kann mir jemand helfen?
 | 
 Was heißt "lässt sich nicht öffnen"? Kommt eine Fehlermeldung?
 Übrigens gibt es kein loadformfile ... | 
|  | 
| Luckie Ehemaliges Mitglied
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Sa 28.01.12 14:18 
 
Das ist eine UTF-16 codierte Datei mit BOM. Die ersten zwei Byte sind FF FE. Wenn du sie mit den Ansi Methoden versuchst zu öffnen, wirst du nichts sehen, da die ersten Zeichen Steuerzeichen sind und das #0 Zeichen von Windows als Dateiendezeichen interpretiert wird. Es wird in einem Memo also nichts dargestellt. | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Sa 28.01.12 14:27 
 
Und da im Profil Delphi 6 steht, wirst du den Dateiinhalt erst einmal nach Ansi umwandeln müssen, da Delphi erst ab Delphi 2009 auch Unicode darstellen kann. Am einfachsten geht vermutlich ein TFileStream, dessen Inhalt du in einen PWideChar kopierst und dann nach Ansi umwandelst um am Ende einen AnsiString in das Memo zu packen. | 
|  | 
| ThomasEi Hält's aus hier
 Beiträge: 7
 
 WinXP Pro SP3 & Win7
 ... D2005 Pro / D2010 Pro
 
 | 
Verfasst: Sa 28.01.12 15:55 
 
könnte Dir dies weiter helfen
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 
 | procedure TForm1.Button1Click(Sender: TObject);var FileName: string;
 TempList: TStrings;
 begin
 TempList := TStringList.Create;
 try
 FileName:='C:\Test2.txt';
 with Memo1.Lines do LoadFromFile(FileName);
 finally
 TempList.Free;
 end;
 end;
 |  | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Sa 28.01.12 16:01 
 
Dass und warum das so nicht geht, haben wir doch schon geschrieben.    Und ich habe auch geschrieben wie es geht (einfacher wäre natürlich eine aktuelle Delphiversion, denn da geht der von dir gepostete Code):
 TFileStream --> Datei hineinladen --> Inhalt in PWideChar kopieren --> in AnsiString konvertieren --> in Memo packen
 Nebenbei:
 Das with dort ist echt grausam. Ich finde die Verwendung von with an sich schon äußerst ungünstig, aber dann auch noch an der Stelle, wo dadurch noch mehr Zeichen geschrieben werden müssen...   Für diesen Beitrag haben gedankt: BenBE
 | 
|  | 
| Luckie Ehemaliges Mitglied
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Sa 28.01.12 17:55 
 
		                       Delphi-Quelltext 
 									| 1:
 | with Memo1.Lines do LoadFromFile(FileName);					 |  Ich hoffe, das ist ein Scherz, wenn auch ein äußerst schlechter. | 
|  | 
| Martok 
          Beiträge: 3661
 Erhaltene Danke: 604
 
 Win 8.1, Win 10 x64
 Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
 
 | 
Verfasst: Sa 28.01.12 18:42 
 
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
 Für diesen Beitrag haben gedankt: BenBE, FinnO
 | 
|  | 
| Luckie Ehemaliges Mitglied
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Sa 28.01.12 21:53 
 Für diesen Beitrag haben gedankt: Martok
 | 
|  |