Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Umlaute in Pfadangabe (https://www.delphipraxis.net/138069-umlaute-pfadangabe.html)

LuCSteR 3. Aug 2009 09:18


Umlaute in Pfadangabe
 
Hi,

ich nutze diese Funktion:

Delphi-Quellcode:
procedure ListDirFiles(sDir: string; const sList: TStrings);
var Rec: TSearchRec;
begin
  sList.BeginUpdate;
  try
    sList.Clear;
    if FindFirst(IncludeTrailingPathDelimiter(sDir) + '*.*', faAnyFile or faReadOnly or faHidden or faArchive, Rec) = 0 then
    begin
      repeat
        if (((Rec.Attr and faDirectory) = 0) and (Rec.Name <> '.') and (Rec.Name <> '..')) then sList.Add(Rec.Name);
      until FindNext(Rec) <> 0;
      SysUtils.FindClose(Rec);
    end;
  finally
    sList.EndUpdate;
  end;
end;
Sie liefert mir alle Namen von Dateien in einem Ordner. Wenn der Pfad allerdings Umlaute beinhaltet, bekomme ich eine leere Liste zurück. Kann ich bei der Pfadübergabe iwas machen, damit die Umlaute erkannt werden? (auch "ß" wirdf nicht erkannt)

Grüße

Luckie 3. Aug 2009 09:20

Re: Umlaute in Pfadangabe
 
Welche Delphi Version nutzt du?

Vasco da Gama 3. Aug 2009 09:25

Re: Umlaute in Pfadangabe
 
Er hat Lazarus angegeben, wenn ich mich nicht irre.

Luckie 3. Aug 2009 09:28

Re: Umlaute in Pfadangabe
 
Oh. OK. Ich dachte erst es wäre ein Delphi2009 Unicode-Problem. Was passiert den beim Debuggen? Wenn du den Mauszeiger über Rec.Name hältst, werden dann die Dateien mit den Umlauten angezeigt?

Bernhard Geyer 3. Aug 2009 09:38

Re: Umlaute in Pfadangabe
 
Zitat:

Zitat von Vasco da Gama
Er hat Lazarus angegeben, wenn ich mich nicht irre.

Nachträglich (Beitrag wurde Editiert)

LuCSteR 3. Aug 2009 10:05

Re: Umlaute in Pfadangabe
 
@Bernhard: Nein, Lazrus stand von Anfang an drin. Hatte nur die Anmerkung mit "ß" ergänzt.
@Luckie: Dateinamen, die Umlaute enthalten, stellen nicht das Problem dar, sondern nur Pfadangaben. Die Dtainamen werden ja nur gelesen, quasie nicht verarbeitet. (außerdem habe ich keine Dateinamen, die aus Umlauten bestehen, kann also auch nicht sagen, ob die Funktion dahingehend versagt)

Mit sDir übergebe ich den Pfad z.B. ..."\723_Testdaten\Verfügungsaufträge\". Ist sicherlich ein Zeichensatzkonflikt. Damit kenn ich mich leider garnicht aus :/

Ich werde noch ein bisschen testen und dann genauere Infos geben, wenn möglich.

Danke für die Hilfe :)

/edit Datensatz --> Zeichensatz

LuCSteR 3. Aug 2009 10:36

Re: Umlaute in Pfadangabe
 
Okay hab was. sDir ist wie folgt belegt:

sDir = 0x140a50 'W:\07_Integration\72_Werkzeuge-Methoden\723_Testdaten\Ablagevertr'#195#164'ge\'

Folgende Abfrage wird mit false beantwortet, wodurch eine leere Liste zurückkommt.

Delphi-Quellcode:
if FindFirst(IncludeTrailingPathDelimiter(sDir) + '*.*', faAnyFile or faReadOnly or faHidden or faArchive, Rec) = 0 then
Demnach wird die Funktion FindFirst nicht mit den Zeichen klarkommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 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