string letztes zeichen überprügen und ggf. löschen
hi,
ich möchte von einem string das letzte zeichen überprüfen ob es ein '\' ist und wenn ja dann soll es weggenommen werden wie bekomme ich das hin? mfg gandime |
Re: string letztes zeichen überprügen und ggf. löschen
Schon mal die Hilfe bemueht? Google Bemueht? Etwas auf english gedacht? Dann waere da wohl Delete rausgekommen.
Hier wie du es machen koenntest... Aber erstmal selbst gucken in der Hilfe mit F1 Delete fuer die Function zum loeschen und zum gucken ob das letzte Zeiche nein "\" ist kannst du function AnsiLastChar nutzen. Und hier noch ein Beispiel weils so schoen war...
Delphi-Quellcode:
var
S : String; begin S := Edit1.Text; if AnsiLastChar(S)^ = '\' then Delete(S, Length(S), 1); ShowMessage(S); end; |
Re: string letztes zeichen überprügen und ggf. löschen
Moin Mackhack,
wenn s leer ist bekommst Du so aber eine AV. Andere, von Deiner abgeleitete Variante:
Delphi-Quellcode:
Dann gibt es noch die Delphifunktion ExcludeTrailingPathDelimiter, die für meinen Geschmack nur den Nachteil hat, dass sie bei mehreren aufeinanderfolgenden \ nur den letzten wegnimmt.
while (AnsiLastChar(s) <> nil) and (AnsiLastChar(s)^ = '\') do SetLength(s,length(s)-1);
|
Re: string letztes zeichen überprügen und ggf. löschen
danke, funzt prima
mal zu den bemerkungen: Zitat:
Zitat:
|
Re: string letztes zeichen überprügen und ggf. löschen
Sollte Probleme geben wenn der String '' ist.
|
Re: string letztes zeichen überprügen und ggf. löschen
Zitat:
Zitat:
|
Re: string letztes zeichen überprügen und ggf. löschen
Ah, stimmt, muss wohl genauer hinschauen.
|
Re: string letztes zeichen überprügen und ggf. löschen
Hallo,
wenn es wirklich nur um das Zeichen "\" geht, dann ist ExcludeTrailingPathDelimiter aus SysUtils genau die richtiger Routine. Zumindest, solange der PathDelimiter ein "\" ist. Gruß xaromz |
Re: string letztes zeichen überprügen und ggf. löschen
Moin xaromz,
Zitat:
|
Re: string letztes zeichen überprügen und ggf. löschen
Zitat:
Code:
while [color=#ff0000](s <> '')[/color] and (AnsiLastChar(s)^ = '\') do SetLength(s,length(s)-1);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz