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


Code: Alles auswählen

  String$="01"
String$+"1"
Debug String$

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:

Code: Alles auswählen

old$ = "7"
new$ = RSet(old$, 3, "0")
-> new$ = "007"

Verfasst: 20.07.2008 21:21
von ts-soft
@ZeHa

ca. 1 Minute schneller :mrgreen:

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

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