![]() |
Führende Null entfernen
Hallo Delphianer :-D
Ich schreibe ja momentan an einem Taschenrechner, der über eine Rücktaste verfügt. Mit dieser Taste kann die letzte Zahl wieder entfernt werden. Beispiel: Eingabe über Zahlenbutton: 1232 nun drückt der User die Rücktaste und im Editfeld steht 123... Dies habe ich so gelöst:
Delphi-Quellcode:
Wenn nun div 10 die Null liefert, dann wird diese ja auch ins Editfeld geschrieben. Wenn der User über die Button nun neue Zahlen eingibt, steht dann da z.B. 0124.Gibt es einen Befehl wie z.B. Trim, der anstatt der Lehrzeichen die führende Null automatisch beseitigt, oder findet ihr meine Lösung für vertretbar? :roll:
edit1.text:=IntToStr(StrToInt(edit1.text) div 10);
if StrToInt(edit1.text)=0 then edit1.text:=''; gruß tobias |
Re: Führende Null entfernen
-String in Zahl wandeln
-manuell |
Re: Führende Null entfernen
Hi,
Delphi-Quellcode:
Sowas?
function DeleteZero(aStr: String): String;
begin if aStr[1] = '0' then Delete(aStr, 1, 1); Result := aStr; end; |
Re: Führende Null entfernen
Zitat:
Delphi-Quellcode:
Dann ergibt sich das Problem gar nicht.
procedure TForm1.Button1Click(Sender: TObject);
var EditTemp: String; begin EditTemp := Edit1.Text; Delete(EditTemp, Length(Edit1.Text), Length(Edit1.Text)); Edit1.Text := EditTemp; end; Willnix |
Re: Führende Null entfernen
Delphi-Quellcode:
Suchst du sowas?
function LoescheFuehrendeNullen(Text :String):string;
var i : integer; begin // wenn führende Nullen im Datensatz sind lösche diese for i := 1 to (length(text)-1) do begin if not (text[2]= ',') then begin if text[1] = '0' then begin text := copy(text,2,length(text)); end else begin break; end; break; end; end; result := text; end; |
Re: Führende Null entfernen
Danke für die vielen Antworten....
Ich habe mich für die Variante von willnix entschieden...
Delphi-Quellcode:
Denn damit lassen sie auch Zahlen behandeln, wie z.b. 23,6 :zwinker: und der Umfang ist im Rahmen. Könntest du mir nochmal erläutern, was ab delete passiert ? Was macht der Befehl length ?
procedure TForm1.Button1Click(Sender: TObject);
var EditTemp: String; begin EditTemp := Edit1.Text; Delete(EditTemp, Length(Edit1.Text), Length(Edit1.Text)); Edit1.Text := EditTemp; end; Dankeschön.... :stupid: |
Re: Führende Null entfernen
Ok, also...
Delphi-Quellcode:
Lenght Gibt die Länge des Strings zurück. Also wenn 2,34 im Edit steht, ist der Wert von "Length(Edit1.Text)" 4.
Delete(EditTemp, Length(Edit1.Text), Length(Edit1.Text));
So, und Delete löscht Zeichen aus einem String. Und zwar wie folgt:
Delphi-Quellcode:
Wenn die länge des Strings jetzt 4 ist, dann ist die Position der letzten Ziffer auch 4 also lösche ich mit:
Delete(Der String aus dem gelöscht werden soll, Die Position im String AB der gelöscht werden soll, Die Position BIS zu der gelöscht werden soll)
Delphi-Quellcode:
das letzte Zeichen aus dem String EditTemp.
Delete(EditTemp, Length(Edit1.Text), Length(Edit1.Text));
Delphi-Quellcode:
Würde z.B die vorletzte Ziffer aus EditTemp löschen.
Delete(EditTemp, Length(Edit1.Text-1), Length(Edit1.Text-1));
oder mit
Delphi-Quellcode:
Alles von der ersten bis zur 3. Position.
Delete(EditTemp, 1, 3);
Ich hoffe das war verständlich Willnix |
Re: Führende Null entfernen
:hello:
Sehr ausführlich erklärt. Vielen Dank dafür. Habe es verstanden :dp: |
Re: Führende Null entfernen
Ahhh!
Ich habe mich fürchterlich geirrt! Das funktioniert zwar alles so, ABER der 3. Parameter von Delete gibt nicht die Position an bis zu der gelöscht werden soll sondern wieveile Zeichen gelöscht werden sollen. Also muss es bei dir heißen:
Delphi-Quellcode:
Dann löscht er von Length(Edit1.Text) aus 1 Zeichen.
Delete(EditTemp, Length(Edit1.Text), 1);
Hier ist das egal weil es eh das letzte Zichen ist aber sonst... :wall: Willnix |
Re: Führende Null entfernen
Und was passiert, wen es keine führende Null gibt? Dann wird die erste Zahl abgeschnitten.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02: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