Lazarus 2.0RC1 ExtractFileNameWithoutExt

Rund um die LCL und andere Komponenten
Antworten
hubblec4
Beiträge: 341
Registriert: Sa 25. Jan 2014, 17:50

Lazarus 2.0RC1 ExtractFileNameWithoutExt

Beitrag von hubblec4 »

Hallo Lazarusgemeinde

Ich habe nun die RC1 installiert und wollte wieder einmal einen Dateinamen aus einem Pfad extrahieren, dabei wird einem nun diese neue Function angeboten. Klingt vielversprechend, da ich diese doch öfters mal benutzen muss.

Die Datei Endung ist wie erwartet nicht vorhanden dafür steht vor dem Dateinamen der Ordner. Der Ordner besteht nur aus Zahlen!!

Code: Alles auswählen

 
var fName: String= c:\00800\Datei.dat;
 
fName:=ExtractFileNameWithoutExt(fName);
 
// fName = 00800\Datei
 
 


Ich nutze die 32bit Variante von Lazaurs für Win7 64bit.

Ist das bei anderen auch so oder nur bei mir?

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Lazarus 2.0RC1 ExtractFileNameWithoutExt

Beitrag von pluto »

Ist das bei anderen auch so oder nur bei mir?

Diese Funktion ist nicht neu, die gibt es schon länger.
ich mach immer erst ein ExtractFileName und dann ein ExtractFileNameWitoutExt.
dann klappt es komischerweise. Muss ein BUG in der Funktion sein.
MFG
Michael Springwald

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Lazarus 2.0RC1 ExtractFileNameWithoutExt

Beitrag von Mathias »

Ich brauche gerade auf diese Funktion, und bin hierher gestossen.
Muss ein BUG in der Funktion sein.
Das besteht immer noch, vielleicht ist es ja so gewollt.
Bei mir gibt es einen Hinweis, das es "deprecated" ist.

Ich habe die vorgeschlagene Unit LazFileUtils genommen. Dafür geht FindAllFiles nicht mehr.

Was auch noch merkwürdig ist, das sich "ExtractFileNameWithoutExt" an einem ganz anderem Ort befindet als "ExtractFileName".
Irgendwie ein Durcheinander. :roll:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

PascalDragon
Beiträge: 825
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Lazarus 2.0RC1 ExtractFileNameWithoutExt

Beitrag von PascalDragon »

Mathias hat geschrieben:
So 12. Jul 2020, 13:48
Was auch noch merkwürdig ist, das sich "ExtractFileNameWithoutExt" an einem ganz anderem Ort befindet als "ExtractFileName".
Irgendwie ein Durcheinander. :roll:
ExtractFileNameWithoutExt wird durch Lazarus bereit gestellt, nicht durch FPC, also ist das natürlich an einem anderen Ort.

Ich selbst würde es einfach so machen:

Code: Alles auswählen

path := ChangeFileExt(ExtractFileName(path), '');
FPC Compiler Entwickler

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Lazarus 2.0RC1 ExtractFileNameWithoutExt

Beitrag von Mathias »

Irgendwie komisch, obwohl die beiden Funktionen ExtractFileNameWithoutExt und ExtractFileName Verwand sind, werden sie anders zu Verfügung gestellt.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Lazarus 2.0RC1 ExtractFileNameWithoutExt

Beitrag von Winni »

Moin!


ExtractFileNameWithoutExt funktioniert unter Linux64 einwandfrei:

Gibt den kompletten Pfad und den Dateinamen ohne Suffix zurück.

Winni

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus 2.0RC1 ExtractFileNameWithoutExt

Beitrag von wp_xyz »

Funktioniert auch unter Windows so. Dennoch finde ich, dass der Name sehr schlecht gewählt ist. Denn es gibt ja auch die altbekannte Funktion "ExtractFileName()", die nur den Dateinamen, ohne Pfad, zurückliefert. Da ist es schon sehr seltsam, dass derselbe Name mit dem Zusatz "WithoutExt" trotzdem den Pfad dran hat.

Aber ich fürchte, das wird man nicht mehr ändern können, und so wird sich das in die Vielzahl der Seltsamkeiten von Delphi/Lazarus/FPC einreihen müssen.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Lazarus 2.0RC1 ExtractFileNameWithoutExt

Beitrag von Winni »

Hi!

Ja um die FunktionsNamen wird sich oft viel zu wenig gekümmert.

Ich hatte neulich im Internationalen Forum Mühe, die (Un)Logik von RoundTo zu erklären.
Das ist auch leider sehr, sehr wenig intuitiv .

Da Lob ich mir doch die alten Atari Zeiten mit CCD Pascal:

Trim hieß da EatSpaces.
Da kann man sich doch was vorstellen!

Winni

Antworten