Bestimmtes Zeichen aus String entfernen lassen per Autohotkey

  • Hallo,


    gibt es hier im folgenden Code die Möglichkeit dass Dollar Zeichen zu entfernen und nur die Zahl abspeichern zu können ?


    Wäre um jede Hilfe dankbar...



  • Danke zuerst dafür. Nun habe ich das Problem dass er mir mehrere nach . stellen anzeigt. Wie entferne ich das am sinnvollsten so das die dollar anzeige in jedenfall bestehen bleibt. Auch so am besten das bei den 10 Tausendern der Punkt nach den 2 Zahlen ist und nach den Hunderttausendern an 3 stelle.


    Also Format


    5.000
    10.000
    100.000


    Code
    eventgeld:if(!WinActive("GTA:SA:MP"))    return    if(eventnummer !=0)    {                getChatline(0, chat_5)        if(InStr(chat_5, "Du hast "))        {            if(RegExMatch(chat_5, "Du hast (.*) von (.*)\((.*)\) erhalten.", params_))            {                if(params_1 != "" || params_1 != Error)                {                    var=                    var=event%eventnummer%                    IniRead, di, %A_MyDocuments%\%sitename%\event.ini, %var%, win                    Var2=0                    Var2:=di+StrReplace(params_1, "$", " ")                    addChatMessage(Var2)                                        Return                }            addChatMessage("Fail")            }        }    }return
  • Wie ist dies denn hier am besten einzusetzen ?


    Aktuell zählt er es ja als einen tausender. Das soll ja nicht der Fall sein weil es sich um 1$ handelt.


    Code
    var=
    var=event%eventnummer%
    IniRead, di, %A_MyDocuments%\%sitename%\event.ini, %var%, win 
    Var2=0 
    Var2:=di+StrReplace(params_1, "$", " ") 
    addChatMessage(Var2)
  • Ich habe es nun wie folgt


    Code
    var=
    					var=event%eventnummer%
    					IniRead, di, %A_MyDocuments%\%sitename%\event.ini, %var%, win 
    					Var2=0 
    					Var2:=di+StrReplace(params_1, "$", " ") 
    					addChatMessage(FormatNumber(Var2)) 
    					Return

    Allerdings scheint dort immernoch ein Fehler zusein.


    In der Ini ist der Wert 150.000$ gespeichert. Wenn ich nun 1$ gepayt bekomme heißt es nicht 150.001$ sondern nur 151. Das ist natürlich falsch. Was muss ich tun damit sich das ändert ?

  • Ich habe es nun wie folgt


    Code
    var=
    					var=event%eventnummer%
    					IniRead, di, %A_MyDocuments%\%sitename%\event.ini, %var%, win 
    					Var2=0 
    					Var2:=di+StrReplace(params_1, "$", " ") 
    					addChatMessage(FormatNumber(Var2)) 
    					Return

    Allerdings scheint dort immernoch ein Fehler zusein.


    In der Ini ist der Wert 150.000$ gespeichert. Wenn ich nun 1$ gepayt bekomme heißt es nicht 150.001$ sondern nur 151. Das ist natürlich falsch. Was muss ich tun damit sich das ändert ?

    Schonmal Round() versucht?

    Code
    var=
    					var=event%eventnummer%
    					IniRead, di, %A_MyDocuments%\%sitename%\event.ini, %var%, win 
    					Var2=0 
    					Var2:=Round(di)+StrReplace(params_1, "$", "") 
    					addChatMessage(FormatNumber(Var2)) 
    					Return

    Wie wird Win in die Ini gespeichert?
    Welches Format hat es bei Lesen/Schreiben?
    Wie wird diese Zeile ausgegeben? -> Du hast (.*) von (.*)\((.*)\) erhalten.
    Poste mal die komplette Zeile bitte ohne RegEx-Pattern

  • Das ganze klappt nun sofern kein Punkt vorhanden ist. Gibt es die Möglichkeit abzufragen ob ein Punkt darin enthalten ist und diesen dann zu löschen so dass nur zahlen ohne punkt und komma stellen vorhanden sind ?


    Hier meine aktuelle Abfrage


    event1save:Gui, Submit, NoHideIniWrite, % vehicle, %A_MyDocuments%\%sitename%\event.ini, event1, vehicleIniWrite, StrReplace(params_1, "$", ""), %A_MyDocuments%\%sitename%\event.ini, event1, winGui Destroysleep 500MsgBox,0,Erfolgreich gespeichert.,Drücke auf " Ok " um den Keybinder zu verwenden.goto, event1Return


    Hier wird alles in die ini gespeichert was vorher über eine GUI angegeben wird.



    Hinzu habe ich noch ein Problem,


    wenn ich diesen Befehl ausführe und einmal ESC drücke komme ich normal ins Spiel. Gebe ich aber wieder was in den Chat ein oder drücke nur Enter erkennt er immer nur die ID 0. Was kann ich besser machen ?



    push 2.5