![]() |
Datei öffnen...
Halle Delphiprogger,
Mal was ganz einfaches, dachte ich... Ich will aus einem Ordner den ich vorher ausgewält habe die Datei desktop.ini öffnen... Zitat:
Delphi-Quellcode:
Leider erscheint dann im Memo nur -> yQ <- !
procedure TForm1.BitBtn3Click(Sender: TObject);
begin if fileexists(BrowseForFolder1.FolderName + '\desktop.ini') then begin memo1.Clear; memo1.Lines.LoadFromFile(BrowseForFolder1.FolderName + '\desktop.ini'); end end; end. Was mache ich falsch? |
Re: Datei öffnen...
TMemo ist nicht Unicode-Fähig und diese Ini-Dateien liegen vermutlich Unicode-Codiert vor.
Endweder beim Einlesen umcodierung (Funktion gibts in der Codelib) oder Unicodefähige Controls wie Elpack oder TNTWare verwenden. |
Re: Datei öffnen...
Sry also ich habe eine Unicode Datei und in was muss ich die Konvertieren also in welches Format?
ANSI? UTF8? |
Re: Datei öffnen...
Wenn du das normale TMemo verwenden willst mußt du es nach Ansi konvertieren.
|
Re: Datei öffnen...
Ich hab auf irgenteiner Japanischen Webseite folgendes gefunden...
Delphi-Quellcode:
function HexToInt(hex:string):cardinal;
const cHex='0123456789ABCDEF'; var mult,i,loop:integer; begin result:=0; mult:=1; for loop:=length(hex)downto 1 do begin i:=pos(hex[loop],cHex)-1; if (i<0) then i:=0; inc(result,(i*mult)); mult:=mult*16; end; end; function UnicodeToAnsi(SubUnicode: string):string; var a:array[0..500] of char; s1,s2:char; substr1,substr2,s:string; str:string; i:integer; begin if length(SubUnicode) mod 4 = 0 then Begin str:=''; for i:=1 to length(SubUnicode) div 4 do Begin s:=''; substr1:=copy(SubUnicode,i*4-3,2); substr2:=copy(SubUnicode,i*4-1,2); s1:=chr(hextoint(substr1)); s2:=chr(hextoint(substr2)); s:=s+s2+s1; strpcopy(a,s); str:=str+copy(widechartostring(@(a[0])),1,2); end; result:=str; end; end; Ich hab es so versucht, leider funktionierts nett wirklich..
Delphi-Quellcode:
procedure TForm1.BitBtn3Click(Sender: TObject);
var st: TStringlist; z: integer; i: integer; begin if fileexists(BrowseForFolder1.FolderName + '\desktop.ini') then begin st := TStringlist.Create; st.LoadFromFile(BrowseForFolder1.FolderName + '\desktop.ini'); z:= st.Count; for i:= 0 to z do begin memo1.text:= UnicodetoAnsi(st); end; end; st.Free; end; |
Re: Datei öffnen...
Wenn dann
Delphi-Quellcode:
);
memo1.lines.add(UnicodetoAnsi(st[i]);
Und bedenke, dass du so immer die sl freigibst, auch wenn sie möglicherweise garnicht erstellt wurde |
Re: Datei öffnen...
Zitat:
Kann es sein das man schon während die Datei geladen wird sie konviertieren muss :roll: |
Re: Datei öffnen...
Zitat:
Also die Datei in eine StringList zu packen, welche fast das gleiche ist wie ein TMemo (Hinter dem control) ist nicht so die schlauste art... Installiere dir einfach die TNT Komponenten, die kosten nix und bieten vollen Unicode Support ;) Bye Christian |
Re: Datei öffnen...
Hab ich mir fast schon gedacht :wall: :wall:.
Ich probiers aus... |
Re: Datei öffnen...
Jaaaaaaaa... ihr seit ganz toll..
Vielen Dank alles ander ist ein klax :mrgreen: :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz