![]() |
String in Value konvertieren
Hallo.
Ich programmiere grad ein mehrfachumbenennungstool. Dabei soll aus einem String ein evtl. vorhandener Zahlenwert extrahiert werden, sowas wie StrToValue, leider gibts so ne Funktion nicht und ich wollte sie auch nicht selber programmieren. Gibts so eine Funktion die ein Äquivalent zu der in Basic verfügbaren Funktion "VAL()" darstellt? Funktionen wie Val, StrToIntDef konvertieren ja nur Zeichenketten, in denen NUR ein Integer enthalten ist, aber kein text... Könnt Ihr mir da einen Tip geben :gruebel: |
Re: String in Value konvertieren
Hallo cyberrowdy72,
zunächst einmal herzlich willkommen im Delphi-PRAXIS Forum. Die Funktion, die du suchst heißt StrToInt bzw. StrToFloat. |
Re: String in Value konvertieren
Zitat:
Zitat:
|
Re: String in Value konvertieren
Stevie hat Recht, mit den Standardfunktionen komm ich eben nicht weiter (Programmiere schon länger als ich im Forum vertreten bin ;-)
OK, also wenns so eine fkt. in pascal nicht gibt muss ich sie eben selber proggen. Trotzdem thx. |
Re: String in Value konvertieren
verstehe ich dich richtig und du willst zum Beispiel aus dem String "Route66" die 66 extrahieren lassen und zu einer Zahl konvertieren???
weil das würde so nicht gehen denke ich. Da müsstest du dann vorher selbst Hand anlegen. Bei einfacher Konvertierung von Strings wie "6786786" zum Zahlenwert, stehen die Funktionen StrToInt oder Val() zur Verfügung. |
Re: String in Value konvertieren
Ok, ist vielleicht nicht gerade die schnellste Möglichkeit, aber sie funktioniert einigermaßen... :roll:
Delphi-Quellcode:
[edit]Verschreiber korrigiert! :wall:[/edit]
function ExtractInt(s: string): Integer;
var i, x: Integer; begin i := 0; for x := 1 to Length(s) do if s[x] in ['0'..'9'] then i := (i * 10) + StrToInt(s[x]); Result := i; end; |
Re: String in Value konvertieren
Zitat:
|
Re: String in Value konvertieren
Zitat:
|
Re: String in Value konvertieren
Für alle die eine solche Fkt. benötigen hier ist sie. Wird als linked true angegeben, werden alle enthaltenen Zahlen aneinandergereiht, andernfalls wird nach der ersten zusammenhängenden Zahl abgebrochen. Ist keine Zahl enthalten liefert die Funktion den Wert 0.
Delphi-Quellcode:
Bei Fragen ruhig fragen :drunken:
function StrToVal(str:string;linked:boolean):integer;
var i:integer; res:string; begin for i:=1 to length(str) do begin if str[i] in ['0'..'9'] then res:=res+str[i]; if (not (str[i] in ['0'..'9'])) and (res <> '') and (linked=false) then break; end; if res <> '' then result:=strtoint(res) else result:=0; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 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