![]() |
letzten buchstaben aus string entfernen
aloah
ich hab mal ne frage.... undzwar würde ich gerne wissen wie man aus einem string den letzten buchstaben entfernen kann also z.b. wenn ich das so habe text:= abcdef; das ich daraus dann text:= abcde; aber halt unabhängig davon was der letzte buchstabe is |
DP-Maintenance
Dieses Thema wurde von "MrSpock" von "Multimedia" nach "Object-Pascal / Delphi-Language" verschoben.
Ist keine Multimediafrage. |
Re: letzten buchstaben aus string entfernen
Delphi-Quellcode:
text := Copy(text, 1, length(text)-1);
|
Re: letzten buchstaben aus string entfernen
danke für die schnelle antwort
werds gleich mal ausprobieren |
Re: letzten buchstaben aus string entfernen
Moin any_key,
wie du dir vielleicht denken kannst wirst du nicht der erste mit solch einem Problem sein, deshalb lohnt sich das Benutzen der DP-Suchfunktion bei solchen Themen in den meisten Fällen. ;) |
Re: letzten buchstaben aus string entfernen
Delphi-Quellcode:
ineffizient, besser so
text := Copy(text, 1, length(text)-1);
Delphi-Quellcode:
das vermeidet ein komplettes Kopieren und Neuallozieren des ganzen Strings -1 Zeichen im Speicher. Das ist nämlich der Fall bei Copy().
SetLength(Text, Length(Text) -1));
Gruß Hagen |
Re: letzten buchstaben aus string entfernen
oder per delete:
Delphi-Quellcode:
Delete(Text, Length(Text) -1, 1));
|
AW: letzten buchstaben aus string entfernen
Hallo,
ich hatte hier gerade die Antwort von "semo" gelesen. Ist es nicht so, dass bei Zeichenpositionen im String eine Reduzierung der Position um -1 nicht notwendig ist? Nach meinem Kenntnistand beginnt der Zähler im String bei 1.
Delphi-Quellcode:
Beste Grüße// Beispielsweise prüfen auf ein Komma als letztes Zeichen // Copy wird hier verwendet, da das auch mit leeren Strings funktioniert und dann keine Fehlermeldung wirft. if copy(MyString,length(MyString),1) = ',' then begin // Löschen des letzten Zeichens. Delete(MyString, Length(MyString), 1); end; |
AW: letzten buchstaben aus string entfernen
Ja, beginnt bei 1 (seit Kurzem auch wieder ÜBERALL, auch wenn man für Android/iOS kompiliert)
![]() Grund siehe ShortString -> auf Adresse 0 lag das Längen-Byte. Also ohne -1, für das letzte Zeichen.
Delphi-Quellcode:
if EndsStr(',', MyString) then
Delete(MyString, Length(MyString), 1); // außer für "bis vor das letzte Zeichen" MyString := LeftStr(MyString, Length(MyString)-1); // ebenfalls beim COPY Copy ![]() RightStr MidStr Delete ![]() EndsText oder ![]() Substring Remove EndsWith EndText |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz