.Pos("\\") ergibt nicht true, obwohl es müsste
-
ich möchte in einem edit den backslash entfernen wenn es sich nur um z.B. C:\ oder so handelt. dazu mach ich das wie folgt:
if(Input->Text.Length() == 3 && Input->Text.Pos("\\") == 1) { Input->Text.Delete(3,1); }jeodch wird die if-anweisung nicht erfüllt? jedenfalls was das mit Pos angeht. Length() ist ok aber bei Pos klappt es nicht und Delete scheint auch nicht zu klappen (allgemein)
geht Pos erst ab 3 chars oder geht es mit \\ nicht? was amche ich falsch bzw. wie kann ich es anders machen?
-
Was ist der Rückgabewert von "POs"?
-
scheinbar false weils nicht geht ;o)

-
Hallo
Aus der BCB-Hilfe zu Pos
Es wird der Index im AnsiString-Objekt zurückgegeben, an dem der Teilstring subStr beginnt. 1 ist dabei der Index des ersten Zeichens, 2 der des zweiten usw. Wenn der angegebene Teilstring nicht im AnsiString-Objekt enthalten ist, hat Pos den Rückgabewert 0.
Das ist doch eindeutig, oder?
bis bald
akari
-
ok macht sinn. wusste ich eben nicht, ich dachte das wäre wie bei strcmp ein rückgabewert von true/false.
aber das TEdit Text.Delete geht nicht?
jedenfalls löscht es mir kein zeichen. weder mit (index, count) 1,1 2,1 oder 3,1 
-
Hallo
aus der BCB_Hilfe
Aus dem String wird die mit count festgelegte Anzahl von Zeichen entfernt. Die Löschung beginnt bei der mit index angegebenen Position. 1 gibt dabei die erste Position im String an. Die Methode gibt den geänderten Ergebnis-String zurück. (*this)
ist ebenfalls eindeutig, oder?
bis bald
akari
-
alles klar danke! :p
Edit1->Text = Edit1->Text.Delete(3,1);sprich: zuweisung wars

-
Hallo,
Für Deine Zwecke wäre aber "ExcludeTrailingPathDelimiter" besser geeignet.
Bis dann denn,

Nash