Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Pfadtrennzeichen in D2005 immer noch fehlerhaft? (https://www.delphipraxis.net/47540-pfadtrennzeichen-d2005-immer-noch-fehlerhaft.html)

Christian Seehase 12. Jun 2005 21:31


Pfadtrennzeichen in D2005 immer noch fehlerhaft?
 
Moin Zusammen,

wie ich gerade mal wieder feststellen musste hat auch D7 noch die Macke, dass nur das \ als Pfadtrennzeichen zugelassen, bzw. intern verwendet wird (z.B. ForceDirectories), obwohl im Windows-Dateisystem der / gleichberechtigt ist.

Es interessiert mich jetzt nur mal, ob dieser Fehler in D2005 auch noch enthalten ist.
(z.B. zu testen mit der Funktion IsPathDelimiter aus der Unit SysUtils).

NicoDE 12. Jun 2005 23:52

Re: Pfadtrennzeichen in D2005 immer noch fehlerhaft?
 
Delphi-Quellcode:
//...
  ShowMessage(BoolToStr(IsPathDelimiter('\', 1), True)); // -> 'True'
  ShowMessage(BoolToStr(IsPathDelimiter('/', 1), True)); // -> 'False'
//...
Dürfte wohl daran liegen, dass nicht alle Win32-API-Funktionen den / 'dulden'.
(in älteren Windows-Versionen wird es so gut wie gar nicht unterstützt)

Sharky 13. Jun 2005 06:02

Re: Pfadtrennzeichen in D2005 immer noch fehlerhaft?
 
Zitat:

Zitat von NicoDE
... Dürfte wohl daran liegen, dass nicht alle Win32-API-Funktionen den / 'dulden'. ...

Wobei Delphi bei IsPathDelimiter ja keine API-Funktion benutzt.

Bernhard Geyer 13. Jun 2005 07:11

Re: Pfadtrennzeichen in D2005 immer noch fehlerhaft?
 
Zitat:

Zitat von NicoDE
Delphi-Quellcode:
//...
  ShowMessage(BoolToStr(IsPathDelimiter('\', 1), True)); // -> 'True'
  ShowMessage(BoolToStr(IsPathDelimiter('/', 1), True)); // -> 'False'
//...
Dürfte wohl daran liegen, dass nicht alle Win32-API-Funktionen den / 'dulden'.
(in älteren Windows-Versionen wird es so gut wie gar nicht unterstützt)

Würde auch darauf Tippen das neuere Windows-Versionen hier "toleranter" sind. Ich würde erst mal einen Test auch unter Win9x/ME/NT durchführen ob dort auch Windows so tolerant bezüglich "/" ist. Und solange Delphi noch Exe's für die alten BS-Versionen erzeugen kann ist diese Toleranz m.E. nicht in der VCL sinnvoll.
Du kannst dir ja neue Funktionen erzeugen, welche nichts anderes machen als vor dem Aufruf der entsprechenden VCL-Funktion alle "/" durch "\" ersetzen.

SirThornberry 13. Jun 2005 07:51

Re: Pfadtrennzeichen in D2005 immer noch fehlerhaft?
 
generell kann man das problem doch umgehen in dem man alle "/" in "\" wandelt
Delphi-Quellcode:
Pfad := StringReplace(Pfad, '/', '\', [rfReplaceAll]);

sakura 13. Jun 2005 08:08

Re: Pfadtrennzeichen in D2005 immer noch fehlerhaft?
 
Zitat:

Zitat von Christian Seehase
wie ich gerade mal wieder feststellen musste hat auch D7 noch die Macke, dass nur das \ als Pfadtrennzeichen zugelassen, bzw. intern verwendet wird (z.B. ForceDirectories), obwohl im Windows-Dateisystem der / gleichberechtigt ist.

Wie schon mehrmals gesagt, unter Windows ist "\" das offizielle Trennzeichen. "/" wird in den neueren Versionen und APIs unterstützt und ist da auch offiziell zugelassen. Aber solange Delphi noch Anwendungsentwicklung für Windows 9X7ME zulässt, solange kann "/" nicht als Trennzeichen für Pfade zugelassen werden.

Anonsten bleibt zu sagen, dass auch in Zukunft das "\" unter Windows das zu bevorzugende Zeichen ist und auch von Microsoft offiziell genutzt wird. Der "/" wurde intern eingefügt, um den IIS auf Trab zu bringen und nicht bei jeder Webanfrage erst alle "/" nach "\" umwandeln zu müssen :zwinker:

...:cat:...

Christian Seehase 13. Jun 2005 20:32

Re: Pfadtrennzeichen in D2005 immer noch fehlerhaft?
 
Moin Zusammen,

leider konnte ich den Artikel im PSDK zum Thema irgendwie nicht wiederfinden, aber...

Zitat:

Zitat von Bernhard Geyer
Ich würde erst mal einen Test auch unter Win9x...durchführen

Und so habe ich mir noch mal Win 95 installiert, und es ausprobiert (Version 4.0.950): Funktioniert.
OK, NT 4.0 steht noch aus ;-)
Kommt noch.


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