AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Führende Null entfernen

Ein Thema von MarquiseDeSade · begonnen am 22. Mai 2007 · letzter Beitrag vom 23. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von MarquiseDeSade
MarquiseDeSade

Registriert seit: 18. Apr 2007
Ort: Mainz
55 Beiträge
 
Turbo Delphi für Win32
 
#1

Führende Null entfernen

  Alt 22. Mai 2007, 16:16
Hallo Delphianer

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:
edit1.text:=IntToStr(StrToInt(edit1.text) div 10);
    if StrToInt(edit1.text)=0 then
      edit1.text:='';
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?

gruß tobias
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Führende Null entfernen

  Alt 22. Mai 2007, 16:20
-String in Zahl wandeln
-manuell
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Führende Null entfernen

  Alt 22. Mai 2007, 16:27
Hi,

Delphi-Quellcode:
function DeleteZero(aStr: String): String;
begin
  if aStr[1] = '0then
    Delete(aStr, 1, 1);

  Result := aStr;
end;
Sowas?
  Mit Zitat antworten Zitat
willnix

Registriert seit: 14. Apr 2007
Ort: Heidelberg
27 Beiträge
 
Delphi 7 Professional
 
#4

Re: Führende Null entfernen

  Alt 22. Mai 2007, 16:28
Zitat von MarquiseDeSade:
...
Dies habe ich so gelöst:

Delphi-Quellcode:
edit1.text:=IntToStr(StrToInt(edit1.text) div 10);
    if StrToInt(edit1.text)=0 then
      edit1.text:='';
...
Warum nicht einfach so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  EditTemp: String;
begin
  EditTemp := Edit1.Text;
  Delete(EditTemp, Length(Edit1.Text), Length(Edit1.Text));
  Edit1.Text := EditTemp;
end;
Dann ergibt sich das Problem gar nicht.
Willnix
  Mit Zitat antworten Zitat
Benutzerbild von Schaedel
Schaedel

Registriert seit: 5. Jan 2006
Ort: Saarland
174 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Führende Null entfernen

  Alt 22. Mai 2007, 16:28
Delphi-Quellcode:
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] = '0then begin
         text := copy(text,2,length(text));
      end else begin
         break;
      end;
      break;
    end;
  end;
 result := text;
end;
Suchst du sowas?
Michael S.
  Mit Zitat antworten Zitat
Benutzerbild von MarquiseDeSade
MarquiseDeSade

Registriert seit: 18. Apr 2007
Ort: Mainz
55 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Führende Null entfernen

  Alt 22. Mai 2007, 16:37
Danke für die vielen Antworten....

Ich habe mich für die Variante von willnix entschieden...


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  EditTemp: String;
begin
  EditTemp := Edit1.Text;
  Delete(EditTemp, Length(Edit1.Text), Length(Edit1.Text));
  Edit1.Text := EditTemp;
end;
Denn damit lassen sie auch Zahlen behandeln, wie z.b. 23,6 und der Umfang ist im Rahmen. Könntest du mir nochmal erläutern, was ab delete passiert ? Was macht der Befehl length ?

Dankeschön....
  Mit Zitat antworten Zitat
willnix

Registriert seit: 14. Apr 2007
Ort: Heidelberg
27 Beiträge
 
Delphi 7 Professional
 
#7

Re: Führende Null entfernen

  Alt 22. Mai 2007, 17:01
Ok, also...
  Delete(EditTemp, Length(Edit1.Text), Length(Edit1.Text)); Lenght Gibt die Länge des Strings zurück. Also wenn 2,34 im Edit steht, ist der Wert von "Length(Edit1.Text)" 4.
So, und Delete löscht Zeichen aus einem String.
Und zwar wie folgt:
 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) Wenn die länge des Strings jetzt 4 ist, dann ist die Position der letzten Ziffer auch 4 also lösche ich mit:
  Delete(EditTemp, Length(Edit1.Text), Length(Edit1.Text)); das letzte Zeichen aus dem String EditTemp.
  Delete(EditTemp, Length(Edit1.Text-1), Length(Edit1.Text-1)); Würde z.B die vorletzte Ziffer aus EditTemp löschen.
oder mit
  Delete(EditTemp, 1, 3); Alles von der ersten bis zur 3. Position.
Ich hoffe das war verständlich
Willnix
  Mit Zitat antworten Zitat
Benutzerbild von MarquiseDeSade
MarquiseDeSade

Registriert seit: 18. Apr 2007
Ort: Mainz
55 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Führende Null entfernen

  Alt 22. Mai 2007, 17:40


Sehr ausführlich erklärt. Vielen Dank dafür. Habe es verstanden
  Mit Zitat antworten Zitat
willnix

Registriert seit: 14. Apr 2007
Ort: Heidelberg
27 Beiträge
 
Delphi 7 Professional
 
#9

Re: Führende Null entfernen

  Alt 22. Mai 2007, 18:45
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:
Delete(EditTemp, Length(Edit1.Text), 1); Dann löscht er von Length(Edit1.Text) aus 1 Zeichen.
Hier ist das egal weil es eh das letzte Zichen ist aber sonst...
Willnix
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Führende Null entfernen

  Alt 22. Mai 2007, 18:56
Und was passiert, wen es keine führende Null gibt? Dann wird die erste Zahl abgeschnitten.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:47 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