DerGeier Geschrieben 13. Dezember 2002 Geschrieben 13. Dezember 2002 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 Zitieren
Der Kleine Geschrieben 13. Dezember 2002 Geschrieben 13. Dezember 2002 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. Zitieren
Doham Geschrieben 13. Dezember 2002 Geschrieben 13. Dezember 2002 -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.. Zitieren
Klotzkopp Geschrieben 14. Dezember 2002 Geschrieben 14. Dezember 2002 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. Zitieren
IT-FT Geschrieben 16. Januar 2003 Geschrieben 16. Januar 2003 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. Zitieren
TAZttDevil Geschrieben 27. Januar 2003 Geschrieben 27. Januar 2003 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?? Zitieren
Klotzkopp Geschrieben 27. Januar 2003 Geschrieben 27. Januar 2003 Originally posted by TAZttDevil PS: wie kann man quelltext einrücken?? ich meine hier im Fourm?? Wenn Du Code-Tags drumherum machst, werden führende Tabs und Leerzeichen nicht entfernt. Zitieren
TAZttDevil Geschrieben 27. Januar 2003 Geschrieben 27. Januar 2003 ah.. vielen dank.. weis ich das auch mal... oh, ja.. danke das du das geändert hast.. cu Taz Zitieren
Der Kleine Geschrieben 27. Januar 2003 Geschrieben 27. Januar 2003 Originally posted by TAZttDevil in delphi säh das so aus: oder einfach so: ExtractFilePath(Application.EXEName); bzw. ExtractFileName(Application.EXEName); Zitieren
TAZttDevil Geschrieben 27. Januar 2003 Geschrieben 27. Januar 2003 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 Zitieren
Der Kleine Geschrieben 27. Januar 2003 Geschrieben 27. Januar 2003 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 Zitieren
Empfohlene Beiträge
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.