![]() |
Nur Zahlen aus einem String zulassen
Moin die Herren (und Damen?),
ich steh irgendwie auf der Leitung. Sorry, falls das Thema schon mal behandelt worden ist (bin mir fast sicher) ich hab nen Eingangsstring, wo Zahlen UND Buchstaben drin sind. Der Ausgangsstring soll NUR die Zahlen davon beinhalten. :gruebel: :?: Gruss EL |
Re: Nur Zahlen aus einem String zulassen
Mach ne Schelife über die Zeichen und Kopiere wenn Zahl in den Zielstring
|
Re: Nur Zahlen aus einem String zulassen
Hai emsländer,
meinst Du das aus 15AB89 dann ein String 1589 wird? Im einfachsten Fall einfach mit einer Schleife über den String gehen und nur die Zeichen die im Set ['0'..'9'] sind an einen neuen String anhängen. |
Re: Nur Zahlen aus einem String zulassen
Zitat:
Gruss EL |
Re: Nur Zahlen aus einem String zulassen
Zitat:
Gruss EL |
Re: Nur Zahlen aus einem String zulassen
Wenn es nicht arg kritisch ist mit der Performance, würde ich auch Zeichen für Zeichen durch den String wandeln und die Ziffern kopieren. Falls das mit dem Kopieren keine gute Idee ist, kannst Du auch alle "nicht-Ziffern" mit #0 überschreiben und dann am Ende einmalig etwas wie "text:= StringReplace( text, string(#0), '', [rfReplaceAll])" aufrufen.
Ansonsten könntest Du Dir auch eine der Bibliotheken für reguläre Ausdrücke schnappen und dann etwas schreiben, das aussieht wie: $text = preg_replace( '/[^0-9]/', '', $text ); |
Re: Nur Zahlen aus einem String zulassen
Weil schönes Wetter ist (wo auch immer)
Delphi-Quellcode:
type
TSetofChars = Set of Char; function OnlyNumbersInString (const aValue : String; aChars : TSetofChars) : String; var i: Integer; newString : string; begin newString := ''; for i := 0 to Length(aValue) do begin if aValue[i] in aChars then begin newString := newString + aValue[i]; end; end; result := newString; end; procedure TForm1.TestButtonClick(Sender: TObject); begin Edit2.Text := OnlyNumbersInString(Edit1.Text,['0'..'9']); end; |
Re: Nur Zahlen aus einem String zulassen
Hallo
Ihr solltet das nicht mit + machen sondern in place und dann einfach mit SetLength kürzen! :shock: Liebe Grüsse Laufi |
Re: Nur Zahlen aus einem String zulassen
Hai Laufi,
der Code soll das Prinzip zeigen. Über Optimierung mache ich mir da nie gedanken wenn ich so etwas mal schnell hier im Editor runtertippe. |
Re: Nur Zahlen aus einem String zulassen
optimiert würde ich es dann so machen:
Delphi-Quellcode:
procedure OnlyNumbersInString(var aValue: String; aChars: TSetofChars);
var i, j: Integer; begin j := 0; for i := 1 to Length(aValue) do begin if (aValue[i] in aChars) then begin inc(j); aValue[j] = aValue[i]; end; end; SetLength(aValue, j); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 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