Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei öffnen... (https://www.delphipraxis.net/87993-datei-oeffnen.html)

Patrick.Knott 8. Mär 2007 14:53


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:

[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell 32.dll,-21802
InfoTip=@%SystemRoot%\system32\shell32.dll,-12688
IconResource=%SystemRoot%\system32\shell32.dll,-236
Ich versuch dies indem ich sie so laden will...

Delphi-Quellcode:
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.
Leider erscheint dann im Memo nur -> yQ <- !

Was mache ich falsch?

Bernhard Geyer 8. Mär 2007 14:56

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.

Patrick.Knott 8. Mär 2007 16:01

Re: Datei öffnen...
 
Sry also ich habe eine Unicode Datei und in was muss ich die Konvertieren also in welches Format?

ANSI? UTF8?

Bernhard Geyer 8. Mär 2007 16:09

Re: Datei öffnen...
 
Wenn du das normale TMemo verwenden willst mußt du es nach Ansi konvertieren.

Patrick.Knott 8. Mär 2007 16:58

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;

inherited 8. Mär 2007 18:06

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

Patrick.Knott 8. Mär 2007 20:03

Re: Datei öffnen...
 
Zitat:

Listenindex überschreitet das Maximum (1)
Ich dachte immer es währen andere Dinger die mir mehr Probleme machen als das Konvertieren...
Kann es sein das man schon während die Datei geladen wird sie konviertieren muss :roll:

Kedariodakon 8. Mär 2007 20:12

Re: Datei öffnen...
 
Zitat:

Zitat von Patrick.Knott
Kann es sein das man schon während die Datei geladen wird sie konviertieren muss :roll:

Verdammt, er hat es gemerkt...

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

Patrick.Knott 8. Mär 2007 20:15

Re: Datei öffnen...
 
Hab ich mir fast schon gedacht :wall: :wall:.

Ich probiers aus...

Patrick.Knott 8. Mär 2007 21:32

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 19:35 Uhr.

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