Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Trennen von Pfaden (https://www.delphipraxis.net/139101-trennen-von-pfaden.html)

Chefx 23. Aug 2009 21:50


Trennen von Pfaden
 
Hey DBs, :hi:

Ich hab mal eine frage zu mein Quelltext
Delphi-Quellcode:
function regfile(pfad:string):string;
 var
  stringAL : string;
  i,leng:integer;
 begin
  Result := '';
  for i := 0 to length(pfad) - 1 do if pfad[i] = '/' then leng:=i;
  delete(pfad,leng,Length(pfad));
  result:=pfad;
end;
Also ich will diesen
Code:
c:/user/irgendwo/datei.txt
trennen das ich nur noch:
Code:
c:/user/irgendwo/
habe.
Aber ich bekomme so ein hohen integer wert raus das es rein theoretisch bei dem pfad nicht ergeben kann (4347318 :shock: ).
Wo leigt mein problem oder geht das noch einfacher mit dem trennen? :gruebel:

Dunkel 23. Aug 2009 21:57

Re: Trennen von Pfaden
 
Delphi-Quellcode:
ExtractFilePath();
oder
Delphi-Quellcode:
ExtractFileDir();
sollte Dich wunschlos glücklich machen.

himitsu 23. Aug 2009 22:07

Re: Trennen von Pfaden
 
außerdem: Strings werden nicht bei 0 beginnend gezählt :warn:

und meckert dein Compiler nicht zufällig über etwas wie leng könnte undefiniert bzw. nicht initialisiert sein?

jaenicke 23. Aug 2009 22:55

Re: Trennen von Pfaden
 
Zudem ist das Pfadtrennzeichen unter Windows der Backslash und nicht der normale Slash wie im Internet oder unter Linux. Das heißt normalerweise solltest du in einem normalen Pfad gar kein / finden. ;-)

angos 24. Aug 2009 07:41

Re: Trennen von Pfaden
 
das Trennzeichen für Pfade kannst du gut mit "pathdelim" ermitteln (dazu einfach mal in die Hilfe von Delphi schauen).

Das Problem bei dir ist, dass leng, wie Himitsu bereits bemerkt hat, nicht initialisiert ist. Da du nach / suchst, aber / nie in dem Pfad vorkommt, wird leng kein Wert zugewiesen.

Das nur zur Erklärung warum dein Source nicht funktioniert. Ansonsten: Schau dir den Post von Dunkel an und verwende das einfach ;)

himitsu 24. Aug 2009 08:59

Re: Trennen von Pfaden
 
Zitat:

Zitat von jaenicke
Zudem ist das Pfadtrennzeichen unter Windows der Backslash und nicht der normale Slash wie im Internet oder unter Linux. Das heißt normalerweise solltest du in einem normalen Pfad gar kein / finden. ;-)

ist mir garnicht aufgefallen :shock:

nja, aber bei externen Quellen und Usereingaben sollte man das / auch mit beachten,
da Windows dieses ebenfalls behandelt
oder man konvertiert es bei der Eingabeprüfung der Werte.

Chefx 24. Aug 2009 17:07

Re: Trennen von Pfaden
 
danke für euren antworten :thumb: :thumb:


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