Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Wie muß ein allgemeingültiger Algorithmus aussehen, der Pfad und Dateiname trennt?

Im Sinne von:

Eingabe: Pfad und Dateiname als string

Ausgabe: Pfad;Dateiname als string

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.

-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..

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...

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...

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??

ah.. vielen dank.. weis ich das auch mal...

oh, ja.. danke das du das geändert hast..

cu Taz

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.