Zum Inhalt springen

Trennen von Pfad und Dateiname?


Empfohlene Beiträge

Geschrieben

Gibts meist in den meisten Programmiersprachen spezielle Funktionen.

Ansonsten einfach den ganzen String von hinten nach vorne durchlaufen lassen mittels einer Schleife, jeden 1-Zeichen String (Character) auf Backsslash überprüfen und alles was nach dem letzten Backsslash steht, kann nur der Dateiname sein, der Rest der Pfadname.

Geschrieben

-Tokenfunktionen (in c++ z.b. strtok?) mit denen man einen String ab einen bestimmten Zeichen abschneiden kann. z.B. ab dem '\'.

So spart man sich Suchschleifen usw größtenteils (den Token musst Du auch in einer Schleife suchen, da ja bei mehrmaligen Auftreten ansonsten nur der erste genommen wird).

Im Prinzig eigentlich wie mein Vorredner schon geschrieben hat:

Länge des Strings ermitteln,

von vorn oder hinten beginnend Zeichen für Zeichen durchlaufen,

jedes Zeichen prüfen ob es den Token also '\' oder '.' enthält. -> Dateiname muss ja nach dem Namen einen Punkt und die Dateiart haben also 'irgendeinnamedervölligegalist.yxz'

dann den gefundenen string auschneiden usw..

Geschrieben
Originally posted by Doham

jedes Zeichen prüfen ob es den Token also '\' oder '.' enthält. -> Dateiname muss ja nach dem Namen einen Punkt und die Dateiart haben also 'irgendeinnamedervölligegalist.yxz'

Der Dateiname muss keinen Punkt enthalten. Es macht auch keinen Sinn, nach einem Punkt zu suchen, außer Du willst die Dateierweiterung abtrennen. Außerdem können die Elemente des Pfades auch durch Slashs voneinander getrennt sein.

Also:

Einfach nach dem letzten Slash oder Backslash suchen, und dahinter trennen.

  • 1 Monat später...
Geschrieben

dieser MS-VB Code erklärt sehr einfach die von dir gewünchte Funktion.

Public Function PfadUndName(pfa As String, art As String)

' ---------------------------------------------------------

' Diese Funktion trennt den mitgegebenen Pfad vom

' Dateinamen und gibt je nach Parameter den Pfad oder

' den Dateinamen zurück.

' Parameter:

' Name: um den Dateinamen zurück zu geben

' Pfad: um den Pfad zurück zu geben

' ---------------------------------------------------------

Dim Nam As String

Dim merk As String

Dim t As Integer

Dim lang As Integer

Dim wo As Integer

' stelle wo pfad und DB-name zu trennen ist suchen

merk = pf

lang = Len(pfa)

For t = 0 To lang - 1

merk = Mid(pfa, lang - t, 1)

If merk = "\" Then

wo = lang - t

Exit For

End If

Next t

' pfad und name trennen

Select Case art

Case "Name"

PfadUndName = Right(pfa, Len(pfa) - wo)

Case "Pfad"

PfadUndName = Left(pfa, wo)

End Select

End Function

falls es eine MS-nahe Lösung werden soll ist hier mehr abrufbar.

  • 2 Wochen später...
Geschrieben

in delphi säh das so aus:

function fc_GetDName( str_path :string ) : string;

var

  i_lastBS, i : integer;

begin

  for i := 0 to length( str_path ) do

    if str_path[i] = '\\' then

      i_lastBS := i;

  result := copy( str_path, i_lastBS +1, length( str_path ));

end;

liefert dir als result nur den namen zurück...

wenn du den pfad haben willst sieht die result zeile so aus:

result := copy( str_path, 1, i_lastBS );

have fun Taz

PS: wie kann man quelltext einrücken?? ich meine hier im Fourm??

Geschrieben

hmmm...

nagut das wäre dann der einfachere weg... *ggg* ..hmm hät ich so auch nicht gewusst.. alles was ich nicht weis, mach ich kurzerhand selber.. *ggg*hmm..

nein,. . ähm.. ich wollt halt nur zeigen, wie das so geht (*rausred*).. hö, hö..

abgesehen davon gibt dein aufruf doch nur den Programmpfad zurück, oder verwechsel ich da was??

na gut, bis dann... Taz

Geschrieben

jap:

application.exename ist der vollständige Name des Anwendungsprogrammes in Form eines Strings.

Übergibt man einen anderen String, dann wird dieser dort verwendet und entsprechend getrennt.

Zu dem anderen : Ätsch, ich habe mehr gewusst! (Dieses Mal!):bimei

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...