AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Letzten Teil eines Strings entfernen bei unbekannter Länge
Thema durchsuchen
Ansicht
Themen-Optionen

Letzten Teil eines Strings entfernen bei unbekannter Länge

Ein Thema von SpiDe1500 · begonnen am 17. Dez 2010 · letzter Beitrag vom 18. Dez 2010
Antwort Antwort
SpiDe1500

Registriert seit: 13. Dez 2010
17 Beiträge
 
#1

Letzten Teil eines Strings entfernen bei unbekannter Länge

  Alt 17. Dez 2010, 21:52
Delphi-Version: 5
Hallo,

ich muss den letzten Teil bzw Buchstaben eines Strings entfernen . Der Buchstabe ist unbekannt und die länge auch, soltle also komplett algemeingültig sein.
Der Delete Befehl ist mir bekannt, jedoch müsste ich für den irgendwie die Länge wissen, oder kann man den auch "von hinten" zählen lassen? das wäre natürlich das einfachste...
Für eine Anfänger-Freundliche (dh ausführliche) erklärung wäre ich seeehr dankbar

danke

SpiDe
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Letzten Teil eines Strings entfernen bei unbekannter Länge

  Alt 17. Dez 2010, 21:56
Du kannst die Länge eines Strings mit der Funktion Delphi-Referenz durchsuchenLength ermitteln. Somit kannst du "von hinten zählen", indem du einfach die Stelle von der Länge subtrahierst.
Um die letzte Stelle zu entfernen kannst du dann die von dir angesprochene Delphi-Referenz durchsuchenDelete-Funktion oder Delphi-Referenz durchsuchenSetLength verwenden, die quasi das Gegenstück zu Delphi-Referenz durchsuchenLength ist.
  Mit Zitat antworten Zitat
SpiDe1500

Registriert seit: 13. Dez 2010
17 Beiträge
 
#3

AW: Letzten Teil eines Strings entfernen bei unbekannter Länge

  Alt 17. Dez 2010, 21:57
Super! Danke schonmal!
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Letzten Teil eines Strings entfernen bei unbekannter Länge

  Alt 17. Dez 2010, 22:04
So geht das runterzählen...

Delphi-Quellcode:
var I: Integer;

for I :=1 downto Length(deinstring) do
  begin;

  end;
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
SpiDe1500

Registriert seit: 13. Dez 2010
17 Beiträge
 
#5

AW: Letzten Teil eines Strings entfernen bei unbekannter Länge

  Alt 17. Dez 2010, 22:11
Super!
Hat geklappt...
Soll von der Schule her eine Multiplikationsaufgabe aufschlüsseln, sodass er das Ergebnis durch Plus rausbekommt.
Der gesamte Vorgang sollte dann auch in einem Label angegeben werden...
Dh, wenn ich 4 x 5 eingebe sollte im Label 5+5+5+5 stehen ...

habe das so gelöst:
begin
ergebnis := strtoint(edit1.text);
eingabe2 := strtoint(edit2.text);
eingabe2 := eingabe2 - 1;
for i:= 1 to (eingabe2) do begin
ergebnis := ergebnis + strtoint(edit1.Text) ;
formel := formel +edit2.text + '+';

end;
for I :=1 downto Length(formel) do
begin;

end;
Delete(formel, i, 1);
label2.caption := inttostr(ergebnis);
label3.Caption := formel;

Blöd nur, das bei der letzten Schleife dann noch ein + dahinter stand...
also...: 5+5+5+5+ , was kein befriedigendes Ergebnis war.
Aber nun klappts hervorragend!

Danke an Euch beide
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Letzten Teil eines Strings entfernen bei unbekannter Länge

  Alt 17. Dez 2010, 22:32
delete(formel, length(formel), 1); ... hätte es auch getan
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#7

AW: Letzten Teil eines Strings entfernen bei unbekannter Länge

  Alt 18. Dez 2010, 09:46
Der Delete Befehl ist mir bekannt, jedoch müsste ich für den irgendwie die Länge wissen, oder kann man den auch "von hinten" zählen lassen?
Ausrechnen geht ja immer, also Length mit Startposition des Löschesn.

Außerdem rundet Delete eh ab und geht nie über die Textgrenzen hinweg,
also könnte man entweder einfach direkt Length nutzten und als letzen Parameter übergeben
oder irgendeine Zahl, welche auf jedenfall länger ist (ich nehme gern mehrere Achten, weil's nett aussieht, also 88888 )
oder man nimmt z.B. Delphi-Referenz durchsuchenMaxInt.

In neueren Delphis kann man auch den letzen Parameter von Copy weglassen (falls man das Stringende haben will) oder, wie in deinem Fall, nimmt man Delphi-Referenz durchsuchenCopy und kopiert sich nur den gewünschten Teil raus.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:48 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