Zahlenwert säubern

  • Hallo Leute,
    Hab mal ne Frage zu dem kleinen Script-
    Ich möchte das die gesäuberte Zahl ohne Punkt erscheint also so das auch der Punkt weggelöscht wird und eine Zahl als wert wie z.B:12435 ausgeworfen wird.
    Wie kriege ich den Punkt noch weggelöscht ??
    Kann mir jemand bitte den entscheidenen Tipp gebeb ?
    Ich brauch nur eine Zahl als Ergebnis ohne Schnörkel usw.

    Danke Leute im voraus !!!! :D

    mfg Rocco


    StringCleantonum.au3
    ; wie bring ich saubere numerische Werte zusammen

    #include <string.au3>

    $StringtoTest="müll: 12.435"
    $ergebnis=StringCleantoNum($StringtoTest)

    if $ergebnis <> "x" then
    msgbox(0,"so seh ich gesäubert aus", $ergebnis)
    else
    msgbox(32,"mit dem Schrott kann ich","nix anfangen")
    EndIf






    Func StringCleanToNum($stringtoconv)
    ; Ausgabe der gesäuberten Zahl
    ; Fehlerfalle: Ausgabe von x
    $sepwritten=0 ; noch kein Punkt rausgeschrieben
    Local $Hilf, $i, $convString
    $aryChar = StringSplit($stringtoconv, "")
    ; jetzt hab ich das Teil im array

    For $i = 1 To $aryChar[0]

    ; nur Ausgabe wenn Integer Wert
    If StringIsInt($aryChar[$i]) then
    $convString = $convString & $aryChar[$i]

    else
    select
    case $aryChar[$i]="," AND $sepwritten=1
    Return "x"
    case $aryChar[$i]="." AND $sepwritten=1
    Return "x"
    case $aryChar[$i]=","
    $convString=$convstring & "."
    $sepwritten=1
    case $aryChar[$i]="."
    $convString=$convstring & "."
    $sepwritten=1
    endselect

    Endif

    Next
    if StringLen($convString)=0 then
    Return "x"
    Else
    Return $convString
    EndIf

    EndFunc

  • Ich weiß nicht, was alles in deinem String vorkommen kann, aber ganz einfach wäre das hier:

    Code
    $var = Inputbox("Eingabe", "String zum Filtern")
    
    
    $var = StringRegExpReplace($var, "\D", "")
    
    
    MsgBox(0, "Gesäuberte Zahl:", $var)

    Es löscht einfach alles was keine Zahl ist aus dem String. Keine Ahnung ob dir das reicht.

    Grüße,
    Buffo

  • Falls nur die Zahl vor dem Komma benötigt wird:

    [autoit]

    $StringtoTest="müll: 12.435"
    $ergebnis=StringCleantoNum($StringtoTest)

    [/autoit][autoit][/autoit][autoit]

    if $ergebnis <> "x" then
    msgbox(0,"so seh ich gesäubert aus", $ergebnis)
    else
    msgbox(32,"mit dem Schrott kann ich","nix anfangen")
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Func StringCleanToNum( $aString )
    $lPlace = StringInStr( $aString, "." )
    $lReturn = StringTrimRight( $aString, StringLen( $aString ) - $lPlace )
    $lReturn= StringRegExpReplace($lReturn, "\D", "")
    Return $lReturn
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    Hi,

    oder

    [autoit]

    $StringtoTest = "müll: 444,55"
    $ergebnis = StringCleanToNum($StringtoTest)

    [/autoit][autoit][/autoit][autoit]

    If $ergebnis <> -1 Then
    MsgBox(0, "so seh ich gesäubert aus", $ergebnis)
    Else
    MsgBox(32, "mit dem Schrott kann ich", "nix anfangen")
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Func StringCleanToNum($aString)
    $lReturn = StringRegExp($aString, "\d+", 3)
    If IsArray($lReturn) Then Return $lReturn[0]
    Return -1
    EndFunc ;==>StringCleanToNum

    [/autoit]

    So long,

    Mega