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!