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...
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
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
FormatNumber(number){
StringReplace, number, number, -
IfEQual ErrorLevel, 0, SetEnv Sign, -
{
Loop Parse, number, .
{
if(A_Index = 1){
len := StrLen(A_LoopField)
Loop Parse, A_LoopField
{
if(Mod(len-A_Index, 3) = 0 and A_Index != len){
x .= A_LoopField "."
}else{
x .= A_LoopField
}
}
}else{
return sign x "." A_LoopField
}
return sign x
}
}
}
Alles anzeigen
CodeAlles anzeigenFormatNumber(number){ StringReplace, number, number, - IfEQual ErrorLevel, 0, SetEnv Sign, - { Loop Parse, number, . { if(A_Index = 1){ len := StrLen(A_LoopField) Loop Parse, A_LoopField { if(Mod(len-A_Index, 3) = 0 and A_Index != len){ x .= A_LoopField "." }else{ x .= A_LoopField } } }else{ return sign x "." A_LoopField } return sign x } } }
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.
Ich habe es nun wie folgt
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
Codevar= 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?
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 ?
:?:/eventverlassen::
if(isDialogOpen() || !isInChat() || !keybinderstatus || !Login)
return
Suspend On
addChatMessage(dateofsamp "Um abzubrechen gebe keinen Benutzernamen ein und drücke Enter.")
Send tWer soll dass Eventgelnde verlassen ? Bitte ID eingeben:
Input, wort, V I M, {NumpadEnter} {enter}
if(wort =="-1" || wort =="" || wort=" ")
{
addChatMessage(dateofsamp "Funktion: Eventverlassen erfolgreich abgebrochen")
Suspend Off
wort=
Return
}
Send ^a{del}{esc}
addChatMessage(" Wenn du möchtest dass " GetPlayerNameById(wort) " das Event verlässt drücke die Taste X binnen 5 Sekunden.")
KeyWait, X, D, T5
if (!ErrorLevel)
{
sendChat("/m @"GetPlayerNameById(wort)" verlassen Sie sofort das Eventgelände. Andernfalls sind wir gezwungen Gewalt anzuwenden.")
}
wort=
Suspend Off
Return
Alles anzeigen
push 2.5