Seite 1 von 1
String zerlegen
Verfasst: 20.09.2004 22:01
von Quaxi
Hello again
Also ich habe eine Zahl Zb. 2047,50
Diese Zahl will ich nun auf jede Ziffer zerlegt in einen String Array speichern. Ich hab das alles schon mit Len usw probiert aber ich komme irgendwie damit nicht zusammen.
Das Endergebniss soll dann im Endeffekt etwa so aussehen:
text(1) = "2"
text(2) = "0"
text(3) = "4"
text(4) = "7"
text(5) = ","
text(6) = "5"
text(7) = "0"
danke im voraus
Verfasst: 20.09.2004 22:17
von Franky
Code: Alles auswählen
Procedure Zerleg(string.s)
len=len(string)-1
dim letter.s(len)
for a=0 to len
letter(a)=mid(string,a+1,1)
next
Endprocedure
dann fängts mit 0 an, was ich aber machen würde
Verfasst: 20.09.2004 22:35
von Quaxi
tausend dank
Verfasst: 21.09.2004 08:41
von Quaxi
So ich hab das nun so gemacht:
for abc = 1 to 7
text(abc) = mid(string,a,1)
next
allerdings will das nicht bei mir funktionieren.
ich will ausserdem wenn eine zahl zb 46.50 i string steht, die ersten 2 stellen mit 0en vollgeschrieben werden, allso so : 0046.50
danke im voraus
Verfasst: 21.09.2004 09:31
von wichtel
Falls ich kapier was du willst....
Code: Alles auswählen
zahlalsfloat.f=49.56
Debug zahlalsfloat
zahlalsstring.s=StrF(zahlalsfloat,2)
Debug zahlalsstring
#laenge=10
Dim zahlalsarray.s(#laenge)
zahlalsstring=RSet(zahlalsstring,#laenge,"0")
Debug zahlalsstring
For i=0 To #laenge
zahlalsarray(i)=Mid(zahlalsstring,i,1)
Next i
For i=0 To #laenge
Debug "stelle("+Str(i)+") = "+zahlalsarray(i)
Next i
Verfasst: 21.09.2004 13:42
von topsoft
oder so, aber ungetestet da auf Arbeit:
Code: Alles auswählen
Zahl.f = "23573.38"
TextZahl.s = StrF(Zahl, 2)
*AdressZaehler = @TextZahl
Dim ZahlAlsArray.s(Len(TextZahl) - 1)
ArrayCounter.l = 0
Wert.l = PeekB(*AdressZaehler)
While Wert <> 0
ZahlAlsArray(ArrayCounter) = Wert
ArrayCounter + 1
*AdressZaehler + 1
Wert.l = PeekB(*AdressZaehler)
Wend
End
Gruß Topsoft
Verfasst: 21.09.2004 18:24
von Quaxi
Danke für eure Hilfe, aber ich konnte mein Problem bis jetzt noch nicht lösen. Allso hier nochmal genau mein Problem:
Ich habe eine Float Zahl mit 4 Stellen und 2 Nachkomma Stellen. Allso zb. 1234.56
Ich will diese Zahl nun grafisch ausgeben mit Sprites. Dazu muss ich aber erst wissen welche Ziffern die Zahl an welcher Stelle hat.
Also lies ich die Zahlen in einen String-Array ein und kann sie später abrufen und das entsprechende Sprite anzeigen.
Jetzt kommt noch dazu das wenn in der Float Zahl zb nur 47.55 steht ich die ersten zwei leeren stellen ich mit zwei 0en füllen muss.
Ich hoffe ihr versteht es jetzt besser.
Verfasst: 21.09.2004 18:37
von NicTheQuick
Wie wäre es dann einfach hiermit.
Code: Alles auswählen
Procedure.s StrF_Ex(Float.f)
Protected Result.s, n.l
Result = RSet(StrF(Float, 2), 7, "0")
ProcedureReturn Result
EndProcedure
Debug StrF_Ex(12.4)
Debug StrF_Ex(1234)
Debug StrF_Ex(0.133)
Debug StrF_Ex(0)
Debug StrF_Ex(1234.56)
Entspricht das deinen Wünschen?
Verfasst: 21.09.2004 21:45
von Quaxi
Danke, jetzt funktioiert es!