Thema: String in Integer konvertieren Mo Aug 17, 2009 9:11 pm
Ich suche schon seit Tage eine Möglichkeit, eine String (von CallMessageBoard) in einen Integer zu konvertieren. Ich habe es schon mit CastInt versucht, aber dabei entstehen nur sinnlose Zahlen (Der ASCII Wert?). Weiß jemand einen Weg?
Höfi SFT
Alter : 29 Anmeldedatum : 20.10.08
Thema: Re: String in Integer konvertieren Mi Aug 19, 2009 4:24 pm
Wenn es wirklich der ASCII Wert ist, kannst dir daraus ja den int zusammenbasteln.
Merlinus_verus Leutnant
Alter : 30 Anmeldedatum : 20.04.09
Thema: Re: String in Integer konvertieren Do Aug 20, 2009 12:45 pm
Tja, nur hab ich leider keine Ahnung wie, und ich weiß auch nicht genau ob 178683024 der ASCII Wert von 7 ist o.O
Rouby Major
Alter : 36 Ort : Bremen Anmeldedatum : 02.09.09
Thema: Re: String in Integer konvertieren Mi Sep 02, 2009 3:22 pm
Ist nicht der ASCII Wert... wofür brauchst du das denn? Vielleicht gibt es da auch andere Lösungen.
Donky Hauptman
Alter : 26 Ort : In der Nähe Hamburgs Anmeldedatum : 03.11.09
Thema: Re: String in Integer konvertieren Mi Feb 16, 2011 5:29 pm
Ich weiß, dass das Thema schon sehr alt ist, aber falls mal jemand anderes das Problem hat poste ich mal die Antwort. Also solange der String nur Zahlen als Zeichen hat, dann kann man einfach
Code:
eval(szDerString);
benutzen.
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: String in Integer konvertieren Mi Feb 16, 2011 9:56 pm
Und wieso soll diese Funktion es bringen? Ich meine als Beschreibung von eval() steht:
Die Doku schrieb:
Führt einen als String übergebenen Script aus.
Also wenn man da einen String reintut z.B "2" dann würde es die Funktion 2() ausführen, so hab ich das verstanden oO
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: String in Integer konvertieren Mi Feb 16, 2011 10:13 pm
Nein. Das würde Call tun. eval erwartet ein vollständiges Statement. Um eine Funktion aufzurufen braucht man da also auch Klammern. Wird nur "2" ausgeführt, gibt eval eben 2 zurück. "2" ist ein vollständiges, gültiges Statement.
Allerdings scheint der TE trotzdem etwas anderes zu meinen. Zumindest kann das so nicht funktionieren, da man schließlich auch irgendeinen Murks eintippen kann statt einer Zahl, zB GameOver() - wenn das durch eval rutscht, ist erstmal Ende.
Donky Hauptman
Alter : 26 Ort : In der Nähe Hamburgs Anmeldedatum : 03.11.09
Thema: Re: String in Integer konvertieren Do Feb 17, 2011 9:07 am
Code:
if (!Inside(GetChar(szDerString),48,57)) return 0;
umgeht das Problem, denn keine Zahl besteht aus anderen Zeichen als Ziffern und keine Funktion beginnt mit einer Zahl/Ziffer.
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: String in Integer konvertieren Do Feb 17, 2011 3:48 pm
"1 == GameOver()" ?
Donky Hauptman
Alter : 26 Ort : In der Nähe Hamburgs Anmeldedatum : 03.11.09
Thema: Re: String in Integer konvertieren Do Feb 17, 2011 4:48 pm
Thema: Re: String in Integer konvertieren Do Feb 17, 2011 9:03 pm
Laut Doku geht bei nicht #stricten Scripts das Konvertieren von Strings in Integer. Ist das dort eine hardgecodete Enginefunktion oder lässt es sich auch irgendwie in C4Script nachbilden?
Pitri Feldmarschall
Alter : 30 Ort : Karlsruhe Anmeldedatum : 02.03.09
Thema: Re: String in Integer konvertieren Di Feb 22, 2011 7:15 pm
Natürlich geht das.
[Edit:] Argh, die Funktion failt!
Spoiler:
Code:
global func String2Integer(string szString) { var iIndex = GetLength(szString); var iInt; while(iIndex--) if(Inside(GetChar(szString,iIndex),48,57)) iInt += (10**(GetLength(szString)-iIndex)*GetChar(szString,iIndex)-48); return iInt; }
Ich habe die Funktion nicht von der Engine auf Fehler überprüfen lassen und hab so auch grad keine gefunden. Wer einen sieht, sagt es mir bitte.