Autor Beitrag
Sauger Chris
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 228

Win XP, Linux SuSE 9.2
Delphi 4,Delphi 7 Ent.
BeitragVerfasst: Fr 10.07.09 16:42 
huhu mal ne kurze frage

ich lese mit dem code hier eine datei ein und will diese dann in einer memo box darstellen
es klappt auch nur was da drin steht kann mann nicht lesen ^^

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function loadfile(const FileName: string): string;
var
 Stream: THandle; Size,Bytes:Cardinal;
begin
 if length(FileName) = 0 then exit;
 Stream := CreateFile(pchar(FileName), GENERIC_READ,0, nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 if Stream <> INVALID_HANDLE_VALUE then
  begin
    Size := GetFileSize(Stream,nil); SetLength(Result,Size);
    ReadFile(Stream,pchar(Result)^,Size,Bytes,nil);
    CloseHandle(Stream);
  end;
end;


in der datei die eingelesen wird steht "Hallo test" und das hier kommt nach dem einlesen bei raus
慈汬整瑳Dialo

ka wieso hoffe ihr könnt mir helfen und ja die einstellungen im font passen :P
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 10.07.09 16:53 
Warum nutzt du nicht die LoadFromFile-Methode von TMemo und welche Delphi-Version nutzt du (ich tippe stark auf Delphi 2009)?

Edit: Wenn da wirklich diese asiatischen Zeichen in der Memo erscheinen, dann kann das ja eigentlich nur Delphi 2009 sein. Da musst du dann mit String/AnsiString/Unicode aufpassen. Da deine Datei scheinbar im Ansi-Format gespeichert ist, sollte das dann so funktionieren
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
function loadfile(const FileName: string): AnsiString;
var
 Stream: THandle; Size,Bytes:Cardinal;
begin
 if length(FileName) = 0 then exit;
 Stream := CreateFile(pchar(FileName), GENERIC_READ,0, nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 if Stream <> INVALID_HANDLE_VALUE then
  begin
    Size := GetFileSize(Stream,nil); 
    SetLength(Result,Size);
    ReadFile(Stream, pAnsiChar(Result)^,Size,Bytes,nil);
    CloseHandle(Stream);
  end;
end;


Trotzdem - oder gerade dann - wäre die echte LoadfromFile-Methode des TMemo besser, denn die kommt bei D2009 auch mit anderen Kodierungen zurecht, wenn ein entsprechendes BOM gesetzt ist.

_________________
We are, we were and will not be.
Sauger Chris Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 228

Win XP, Linux SuSE 9.2
Delphi 4,Delphi 7 Ent.
BeitragVerfasst: Fr 10.07.09 17:22 
ok danke

so klappt es nu =)