Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi string letztes zeichen überprügen und ggf. löschen (https://www.delphipraxis.net/73688-string-letztes-zeichen-ueberpruegen-und-ggf-loeschen.html)

gandime 22. Jul 2006 02:23


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

Mackhack 22. Jul 2006 02:55

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 Delphi-Referenz durchsuchenDelete fuer die Function zum loeschen und zum gucken ob das letzte Zeiche nein "\" ist kannst du function Delphi-Referenz durchsuchenAnsiLastChar 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;

Christian Seehase 22. Jul 2006 03:31

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:
  while (AnsiLastChar(s) <> nil) and (AnsiLastChar(s)^ = '\') do SetLength(s,length(s)-1);
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.

gandime 22. Jul 2006 08:18

Re: string letztes zeichen überprügen und ggf. löschen
 
danke, funzt prima

mal zu den bemerkungen:

Zitat:

Schon mal die Hilfe bemueht?
ja habe ich und da is auch delete rausgekommen aber mir fehlte halt "AnsiLastChar"

Zitat:

Google Bemueht?
ja, aber nur kurz weil ich auch iwann schlafen wollte. --> dort bin ich nicht so schnell auf etwas gutes gestoßen

3_of_8 22. Jul 2006 08:19

Re: string letztes zeichen überprügen und ggf. löschen
 
Sollte Probleme geben wenn der String '' ist.

Der_Unwissende 22. Jul 2006 08:55

Re: string letztes zeichen überprügen und ggf. löschen
 
Zitat:

Zitat von 3_of_8
Sollte Probleme geben wenn der String '' ist.


Zitat:

Zitat von Christian Seehase
Moin Mackhack,

wenn s leer ist bekommst Du so aber eine AV.

Andere, von Deiner abgeleitete Variante:
Delphi-Quellcode:
  while (AnsiLastChar(s) <> nil) and ...

Was für Probleme denn?

3_of_8 22. Jul 2006 09:08

Re: string letztes zeichen überprügen und ggf. löschen
 
Ah, stimmt, muss wohl genauer hinschauen.

xaromz 22. Jul 2006 09:25

Re: string letztes zeichen überprügen und ggf. löschen
 
Hallo,

wenn es wirklich nur um das Zeichen "\" geht, dann ist Delphi-Referenz durchsuchenExcludeTrailingPathDelimiter aus SysUtils genau die richtiger Routine.
Zumindest, solange der PathDelimiter ein "\" ist.

Gruß
xaromz

Christian Seehase 22. Jul 2006 12:50

Re: string letztes zeichen überprügen und ggf. löschen
 
Moin xaromz,

Zitat:

Zitat von Christian Seehase
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.

;-)

himitsu 22. Jul 2006 13:00

Re: string letztes zeichen überprügen und ggf. löschen
 
Zitat:

Zitat von Christian Seehase
Andere, von Deiner abgeleitete Variante:
Delphi-Quellcode:
  while (AnsiLastChar(s) <> nil) and (AnsiLastChar(s)^ = '\') do SetLength(s,length(s)-1);

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.
Seite 1 von 2  1 2      

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