Ausschneiden/Abschneiden -> String



  • mahlzeit.

    Ich habe verschiedene Ordnerpfade, mit einem Dateinamen drangehängt.
    Manchmal sieht der Anfang so aus:

    ./Ordner/Ordner/Datei manchmal aber auch so:
    /Ordner/Ordner/Datei

    und es gibt irgendwann vielleicht auch noch andere varianten.
    also muss ich irgendwie alles vor dem ERSTEN Ordner abschneiden.
    Aber wie finde ich das heraus?

    Ich habe schon Pos() und SubString() ausprobiert, aber irgendwie funktioniert es einfach nicht.

    Mal ein Beispiel:
    Pfadangabe.SubString(???, Pfadangabe.Legth())
    Aber was muss dann bei dem ersten Parameter stehen?
    Pfadangabe.Pos("\") sodass er nach dem ersten slash ansetzt....funzt aber nicht 😞

    weiß nicht was ich noch ausprobieren könnte...

    thx
    Bj



  • Bj schrieb:

    Pfadangabe.Pos("\") sodass er nach dem ersten slash ansetzt....funzt aber nicht 😞

    Pfadangabe.Pos("\"),

    Das nennt man Escape-Sequenzen

    Bitte mal doch die Hilfe und auf jeden fall ein C/C++ buch lesen



  • also, wenn ich nachher auf der lokalen platte nach einer datei suche:
    wie findet er die datei dann, also mit welcher verzeichnis-angaben-form?:

    C:\ oder
    C:\\
    oder ist das egal?

    und was ist eine escpae sequenz?

    thx
    Bj



  • AnsiString sMsg  //Beispiel: Datei/String und so 
    
    int iPos = sMsg.Pos('/');  //Stelle des Zeichens im String
    AnsiString sSubMsg.SubString(iPos + 1 /*Startwert des SubStrings */, sMsg.Legth());
    
    // SubString = String und so
    


  • das funktioniert.danke.
    aber der wahre pfad, wo er nachschauen soll, ist ja
    C:\blabla

    aber im programm wird aus C:\\blabla:
    C:\\

    warum diese 2 slashes?
    das ist nämlich, wenn ich den pfad C:\ aus der ini.datei auslese, sthet im string dann diese angabe nur mit 2 slashes.

    warum?



  • Bj schrieb:

    das funktioniert.danke.
    aber der wahre pfad, wo er nachschauen soll, ist ja
    C:\blabla

    aber im programm wird aus C:\\blabla:
    C:\\

    warum diese 2 slashes?
    das ist nämlich, wenn ich den pfad C:\ aus der ini.datei auslese, sthet im string dann diese angabe nur mit 2 slashes.

    warum?

    Würdest du einbischen auf in die Hilfe schauen?

    F1->Escape-Sequenzen->lesen

    und lese endlich mal ein C++ buch



  • ok hast recht.
    aber woher bitte sollte ich wissen, dass man in der hilfe nach excape-sequenzen suchen sollte?

    thx
    Bj



  • ähm.
    diese zeile ist so doch richtig oder?

    memo1 -> Lines -> Add ("Ich \n gehe \n weg");

    aber das funzt zB leider nicht!



  • Memo1->Lines->Add("Du\r\ngehst\r\nweg");



  • könntest du mir noch sagen warum man einen
    "Wagenrücklauf"
    davor setzen muss?

    (last question 😉

    thx
    bj



  • Bj schrieb:

    könntest du mir noch sagen warum man einen
    "Wagenrücklauf"
    davor setzen muss?

    (last question 😉

    thx
    bj

    weil es so mal in TStringList:Add() implementiert ist...



  • Bj schrieb:

    ok hast recht.
    aber vorher bitte sollte ich wissen, dass man in der hilfe nach excape suchen sollte?

    Davon ausgehend, dass diese Ansammlung von Tippfehlern heissen sollte "Aber woher bitte sollte ich wissen, dass man in der Hilfe nach Escape Sequenzen suchen sollte?" möchte ich mal folgendes Zitieren:

    Xqgene schrieb:

    [...]Das nennt man Escape-Sequenzen

    Bitte mal doch die Hilfe und auf jeden fall ein C/C++ buch lesen

    Ausserdem würde ich Vorschlagen, du liest deine Posts erst nochmal durch, bevor du auf "Absenden" klickst... so als freundschaftlichen Rat...

    -junix



  • so hatte ich das aber doch auch geschrieben ...

    😃 @ junix



  • Wenn schon cheaten, dann doch bitte richtig (o; Excapesequenzen hab ich bis heute noch nirgends gesehen (o;

    Aber ich hoffe du siehst den ernsten Punkt in meinem Posting auch... (eigentlich sinds 2 Punkte)

    -junix


Anmelden zum Antworten