Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi letzten buchstaben aus string entfernen (https://www.delphipraxis.net/80550-letzten-buchstaben-aus-string-entfernen.html)

any_key 10. Nov 2006 20:17


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 10. Nov 2006 20:20

DP-Maintenance
 
Dieses Thema wurde von "MrSpock" von "Multimedia" nach "Object-Pascal / Delphi-Language" verschoben.
Ist keine Multimediafrage.

MrSpock 10. Nov 2006 20:20

Re: letzten buchstaben aus string entfernen
 
Delphi-Quellcode:
text := Copy(text, 1, length(text)-1);

any_key 10. Nov 2006 20:22

Re: letzten buchstaben aus string entfernen
 
danke für die schnelle antwort
werds gleich mal ausprobieren

Balu der Bär 10. Nov 2006 20:26

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. ;)

negaH 10. Nov 2006 20:30

Re: letzten buchstaben aus string entfernen
 
Delphi-Quellcode:
text := Copy(text, 1, length(text)-1);
ineffizient, besser so

Delphi-Quellcode:
 SetLength(Text, Length(Text) -1));
das vermeidet ein komplettes Kopieren und Neuallozieren des ganzen Strings -1 Zeichen im Speicher. Das ist nämlich der Fall bei Copy().

Gruß Hagen

semo 10. Nov 2006 23:14

Re: letzten buchstaben aus string entfernen
 
oder per delete:

Delphi-Quellcode:
Delete(Text, Length(Text) -1, 1));

GoTo0815 25. Feb 2021 14:06

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:

// 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;
Beste Grüße

himitsu 25. Feb 2021 14:23

AW: letzten buchstaben aus string entfernen
 
Ja, beginnt bei 1 (seit Kurzem auch wieder ÜBERALL, auch wenn man für Android/iOS kompiliert)
{$ZeroBasedStrings OFF} ist der DFAULT
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
Delphi-Referenz durchsuchenLeftStr
RightStr
MidStr
Delete
Delphi-Referenz durchsuchenEndsStr
EndsText

oder StringHelper: (die zählen ab 0)
Substring
Remove
EndsWith
EndText


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 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