Datei lässt sich nicht öffnen
spacer
Autor Nachricht
Bronstein
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Beiträge: 564

WIN XP
Delphi 6
BeitragVerfasst: Sa 28.01.12 14: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!!!
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Perlsau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Beiträge: 59
Erhaltene Danke: 4

Win XP pro
Radstudio 2009 pro
BeitragVerfasst: Sa 28.01.12 14:46 
user profile iconBronstein hat folgendes geschrieben Zum zitierten Posting springen:
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 ...

_________________
Die Tränen, die du nicht weinen willst, müssen andere für dich vergießen. (frei nach: Wer nicht leiden will, muß hassen)
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Luckie
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 11803
Erhaltene Danke: 146

WindowsXP Professional SP2
BDS2006, VS C++ Express, Eclipse (Java), Flex (Flash, AS)
BeitragVerfasst: Sa 28.01.12 15: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.

_________________
Gruß Michael
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15833
Erhaltene Danke: 737

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: Sa 28.01.12 15: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.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
ThomasEi
Hält's aus hier
Beiträge: 7

WinXP Pro SP3 & Win7
... D2005 Pro / D2010 Pro
BeitragVerfasst: Sa 28.01.12 16:55 
könnte Dir dies weiter helfen

ausblenden Delphi-Quelltext markieren
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;
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15833
Erhaltene Danke: 737

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: Sa 28.01.12 17:01 
Dass und warum das so nicht geht, haben wir doch schon geschrieben. :nixweiss: 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... :shock:

Für diesen Beitrag haben gedankt: BenBE
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Luckie
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 11803
Erhaltene Danke: 146

WindowsXP Professional SP2
BDS2006, VS C++ Express, Eclipse (Java), Flex (Flash, AS)
BeitragVerfasst: Sa 28.01.12 18:55 
ausblenden Delphi-Quelltext markieren
1:
with Memo1.Lines do LoadFromFile(FileName);

Ich hoffe, das ist ein Scherz, wenn auch ein äußerst schlechter.

_________________
Gruß Michael
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 2836
Erhaltene Danke: 182

Win 2000, Win XP
Delphi 7, Turbo Delphi Exp.
BeitragVerfasst: Sa 28.01.12 19:42 
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
with Memo1.Lines do LoadFromFile(FileName);
Ich hoffe, das ist ein Scherz, wenn auch ein äußerst schlechter.
Genau, das geht natürlich so:
ausblenden Delphi-Quelltext markieren
1:
with Memo1 do with Lines do LoadFromFile(FileName);


'Tschuldigung, musste sein :mrgreen:


Sehr schön auch die komplett sinnfrei angelegte TempList. Also, Fazit: das machen was user profile iconjaenicke schreibt oder alternativ die TNT Unicode Controls verwenden ;)

_________________
"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."
Ich code EdgeMonkey -~==~- #ee-lounge in Freenode

Für diesen Beitrag haben gedankt: BenBE, FinnO
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Luckie
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 11803
Erhaltene Danke: 146

WindowsXP Professional SP2
BDS2006, VS C++ Express, Eclipse (Java), Flex (Flash, AS)
BeitragVerfasst: Sa 28.01.12 22:53 
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Sehr schön auch die komplett sinnfrei angelegte TempList.

Aber man muss ihm zu gute halten, dass er sie auch wieder frei gibt. :mrgreen:

_________________
Gruß Michael

Für diesen Beitrag haben gedankt: Martok
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home