Zahlen aus String
Übersicht

JanKBetreff: Zahlen aus String |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich hab das in der Forensuche nicht gefunden ![]() Also ich hab einen String: "1,20,36,400,52" und aus diesem möcht ich die einzelnen Zahlen raus haben also z.B. S1$ = "1" S2$ = "20" S3$ = "36" S4$ = "400 " S5$ = "52" Wichtig! Die Zahlen änder sich in der Länge und so. Also, dass oben sind nur Beispielzahlen. |
||
Ich habe keine Zeit, mich zu beeilen.
The Pollux Conflict || The Pollux Renegades || Lipstick-live.de |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, hier hat es eine Funktion um einen Teil des Strings zurück zu geben. Musst eben nur wissen, an welcher Position und wie viele Zahlen in dem String sind !
Das Ergebniss dann einfach mit value% = Int(Stringvariable) in eine Integervariable umwandeln Viel Spass damit ! |
||
JanK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok ich versuchs mal | ||
Ich habe keine Zeit, mich zu beeilen.
The Pollux Conflict || The Pollux Renegades || Lipstick-live.de |
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich habe auch mal sowas gemacht. Hier mal die für dich leicht veränderte version:
Code: [AUSKLAPPEN] Type S
Field st$ End Type Global S.S txt$ = "1,20,36,400,52" splitstring(txt$) WaitKey End Function splitstring(txt$) z1 = 1 z2 = Instr(txt$,",") Repeat If z2 > 0 Then S.S = New S S\st$ = Mid(txt$,z1,z2-z1) Else S.S = New S S\st$ = Right(txt$,len(txt$)-z1+1) Exit EndIf z1 = z2+1 z2 = Instr(txt$,",",z2+1) Until KeyHit(1) For S.S = Each S a = a + 1 Print "S"+a+" = '"+S\st$+"'" Next End Function End |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hab auch sowas:
Code: [AUSKLAPPEN] Function parse_parameter(art = 1, parameter) pos = 1 If parameter > 1 Then For atpara = 1 To parameter-1 parapos = Instr(g_n_command$, ",",pos) pos = parapos + 1 Next EndIf If art = 1 Then Repeat number$ = Mid(g_n_command$, pos,1) If (Asc(number$) > 47 And Asc(number$) < 58) Or number$ = "." zahl$ = zahl$+number$ pos = pos + 1 Else g_n_para_number$ = zahl$ Exit EndIf Forever EndIf If art = 2 Repeat Char$ = Mid(g_n_command$, pos,1) If Asc(Char$) = 34 And startedtext = 1 Then g_n_para_string$ = Sting$ : Exit If Asc(Char$) = 34 And startedtext = 0 Then startedtext = 1 If Asc(Char$) <> 34 And startedtext = 1 Then Sting$ = Sting$ + Char$ pos = pos + 1 Forever EndIf End Function du musst den string in der globalen "g_n_command" speichern...und dann hast du eine variable g_n_para_number$ und ein g_n_para_string$ - auch globale. also funktionierts so: Code: [AUSKLAPPEN] g_n_command$ = "1,30,2,4556,12.3" parse_parameter(1,1) ;Die erste 1 bedeuted das Zahlen zurückgegeben werden sollen zahl1 = int(g_n_para_number$) parse_parameter(1,2) ; Die 2 bedeutet das der 2. Parameter ausgegeben werden soll zahl2 = int(g_n_para_number$) Hoffe es hilft dir Fliege |
||
Wer weiß was kommt.. ? |
JanK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ fliege :
Bei mir kommt nur 0 Raus ![]() Code: [AUSKLAPPEN] g_n_command$ = "1,30,2,4556,12.3"
parse_parameter(1,1) ;Die erste 1 bedeuted das Zahlen zurückgegeben werden sollen zahl1 = int(g_n_para_number$) Print zahl1 parse_parameter(1,2) ; Die 2 bedeutet das der 2. Parameter ausgegeben werden soll zahl2 = int(g_n_para_number$) Print zahl2 WaitKey Die anderen Test ich jetzt mal |
||
Ich habe keine Zeit, mich zu beeilen.
The Pollux Conflict || The Pollux Renegades || Lipstick-live.de |
JanK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok ich hab des von Spikespine genommen ![]() |
||
Ich habe keine Zeit, mich zu beeilen.
The Pollux Conflict || The Pollux Renegades || Lipstick-live.de |
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du musst:
- g_n_command$ - g_n_para_number$ - g_n_para_string$ also globale definieren, dann sollte es funktionieren... |
||
Wer weiß was kommt.. ? |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group