Seite 1 von 1
String in Numerischen Wert [Doofe Frage]
Verfasst: 20.07.2008 21:04
von Joel
Hallo,
Bitte nicht auslachen aber ich bekomme folgendes nicht hin:
Ich habe einen String in dem die Zahl "01" ist. Wie schaffe ich es zu dem String$ eine Zahl zu Addieren also dass da dann 02 raus kommt.
Leider kommt bei dem Code unten 011 raus, statt 02
Verfasst: 20.07.2008 21:10
von TomS
Code: Alles auswählen
string$="01"
zahl=Val(string$)
zahl=zahl+1
string$=Str(zahl)
If Len(string$)=1
string$="0"+string$
Endif
Debug string$
Also zur Erklärung: In PureBasic wird zwischen Numerischen Variablen und Strings unterschieden (anders als bspw in PHP). D.h. vor dem Rechnen muss der String mit Val() in eine Zahl umgewandelt werden. Danach die Rechenoperationen ausführen und anschließend die Zahl mit Str() wieder ein einen String zur Ausgabe umwandeln.
Die If-Bedingung stellt eine 0 voran, wenn der String zu kurz ist.
Verfasst: 20.07.2008 21:10
von STARGÅTE
du musst das "Zahlwort" erst in eine echte Zahl umwandeln, und dann wieder zurück:
Code: Alles auswählen
String$ = "01"
String$ = Str(Val(String$)+1)
Debug String$
Str() wandelt Zahl in String um
Val() wandelt String in Zahl um
Verfasst: 20.07.2008 21:18
von ts-soft
Das Beispiel von TomS mit RSet
Code: Alles auswählen
string$="01"
zahl=Val(string$)
zahl=zahl + 1
string$=RSet(Str(zahl), 2, "0")
Debug string$
Verfasst: 20.07.2008 21:19
von ZeHa
@ TomS: Für das Voranstellen einer 0 oder eines anderen Zeichens kann man auch die Funktion RSet() verwenden:
-> new$ = "007"
Verfasst: 20.07.2008 21:21
von ts-soft
@ZeHa
ca. 1 Minute schneller

Verfasst: 20.07.2008 21:22
von ZeHa
Ich bin halt ein gemütlicherer Mensch als Du

Verfasst: 20.07.2008 21:25
von TomS
Das kommt davon, wenn man die Hilfe nur anschaut, wenn man sich anders nicht helfen kann
Danke für den Tipp