![]() |
Führende nullen aus einem String löschen
Ich hab z.B. folgenden String: "0000058356"
Daraus will ich das machen: "58356" habs mit ner while und ner for schleife versucht und das klappt auch nicht:
Delphi-Quellcode:
Gibts da evtl. ne funktion?
value := inttostr(strtoint(value));
|
Re: Führende nullen aus einem String löschen
Moin Sebastian,
Du könntest es z.B. auch so machen:
Delphi-Quellcode:
mir ist nur nicht klar, was an Deinem Beispiel nicht funktioniert.
while pos('0',Value) = 1 do Delete(Value,1,1);
Damit müsste das auch gehen, genau genommen sogar besser. |
Re: Führende nullen aus einem String löschen
Also bei mir geht das.
Delphi-Quellcode:
Was geht den bei dir daran nich? (Fehlermeldung...)
value := inttostr(strtoint(value));
|
Re: Führende nullen aus einem String löschen
Ich benutze das mit dem Quickreport
hab die kompo dbtext erweitert und ein OnPrint-Ereignis erstellt. Wenn man jetzt ein db-feld auswählt mit den nullen am anfang dann soll der im onprint ereignis die nullen löschen. hab das z.b. auch mit
Delphi-Quellcode:
Im einzelschritt zeigt der mir für "Value[i] beim ersten mal "#0" an. Was heißt das?
for i := 0 to length(value)
begin if value[i] = '0' then delete(value, i, 1) else break; end; |
Re: Führende nullen aus einem String löschen
Moin Sebastian,
die Indizes eines Strings fangen bei 1 an, nicht bei 0. Aber was funktioniert bei Dir an der von Dir geposteten Zeile nicht? |
Re: Führende nullen aus einem String löschen
nichts funktioniert...das der entfernt da die nullen einfach nicht. das steht das gleiche wie vorher
|
Re: Führende nullen aus einem String löschen
Liste der Anhänge anzeigen (Anzahl: 1)
Kann mir jemand das erklären?? Das ist der Wert von i nach dem ersten durchlauf
|
Re: Führende nullen aus einem String löschen
Moin Sebastian,
Zitat:
Zitat:
Wie ist Value deklariert. So recht erklären kann ich mir das so nicht. |
Re: Führende nullen aus einem String löschen
Ich starte die Schleife doch mit i = 1
Guck mal genau... So sieht der Kopf der Proc. aus:
Delphi-Quellcode:
procedure TQRDBTextNull.MyOnprint(sender: TObject; var Value: String);
|
Re: Führende nullen aus einem String löschen
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab noch 'nen anderen komischen Fehler - kein do. (for to do)
Wenn ich so was machen meckert mein Compiler, deiner anscheinend nicht. Oder sehe ich da was nicht? |
Re: Führende nullen aus einem String löschen
Moin Sebastian,
ich war von der Schleife die Du oben gepostet hast ausgegangen, da steht noch 0. Probier mal das Projekt über Projekt erzeugen neu zu erstellen. |
Re: Führende nullen aus einem String löschen
:wall: :wall: :wall: :wall:
Der Source den ich verändert hab war aus nem Package in dem meine neuen Kompos liegen. Leider hab ich nur den Source im Projekt verändert, das Package aber nicht neu kompiliert. Deshalb hat der auch nicht bei
Delphi-Quellcode:
gemeckert
for i := 1 to length(value)
begin end; |
Re: Führende nullen aus einem String löschen
Delphi-Quellcode:
Wenn du das so machst, löschst du nur die 1. 3. 5. ... Null.
For i := 1 to Length(value) do
If value[i] = '0' Then Delete(value, i, 1) Else Break; Wenn du schon so löschen möchtest, solltest das so abändern. (die Zeichenfolge verschiebt sich doch nach links, wenn vorn etwas gelöscht wird)
Delphi-Quellcode:
Das entspricht deinen geposteten Version, nur etwas optimiert und die 0 durch 1 ersetzt.
For i := 1 to Length(value) do
If value[i] = '0' Then Delete(value, 1, 1) Else Break; {^} (0 => 1 siehe Chris) |
Re: Führende nullen aus einem String löschen
Da ich jetzt weiß was ich falsch gemacht hab, hab ich das so gemacht
value := inttostr(strtoint(value)); Klappt jetzt Wunderbar! Danke! :dp: |
Re: Führende nullen aus einem String löschen
Moin Himitsu,
wobei ich da die Variante mit der While Schleife übersichtlicher finde. |
Re: Führende nullen aus einem String löschen
Wenn die nicht neu kompiliert hast, ist es wahrscheinlich, das der Debuger das "i" im Quellcode nicht mit "i" im laufenden Programm verbunden hat. Und daher auch 0 in deinem Bild anzeigte.
|
Re: Führende nullen aus einem String löschen
Ich hab in meinem Projekt den Source gesehen, aber kompiliert wurde das Programm immer mit der alten dcu, richtig?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:29 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