![]() |
Umlaute in Pfadangabe
Hi,
ich nutze diese Funktion:
Delphi-Quellcode:
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)
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; Grüße |
Re: Umlaute in Pfadangabe
Welche Delphi Version nutzt du?
|
Re: Umlaute in Pfadangabe
Er hat Lazarus angegeben, wenn ich mich nicht irre.
|
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?
|
Re: Umlaute in Pfadangabe
Zitat:
|
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 |
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:
Demnach wird die Funktion FindFirst nicht mit den Zeichen klarkommen.
if FindFirst(IncludeTrailingPathDelimiter(sDir) + '*.*', faAnyFile or faReadOnly or faHidden or faArchive, Rec) = 0 then
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 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 by Thomas Breitkreuz