![]() |
Anzeige:
|
|
|||||||
| XProfan-Stammtisch Für alle Themen die nichts mit der XProfan-Programmierung zu tun haben. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Ist öfter hier
![]() Registriert seit: 12.04.2009
Beiträge: 52
|
Explode finde ich ja für sehr nützlich.
Manchmal braucht mans eben auch mal anders rum. Gerade, wenn man z.B. Daten im Programm in Arrays[] hält und am Ende in eine Datei schreiben will. Seit man Arrays[] an Procs übergeben kann, kein Problem. Evtl. kann es jemand auch gebrauchen : Code:
Declare A$[], B$[], text$
Proc Implode
Parameters Array$[], Delimiter$
Declare retString$, last&
last& = SizeOf(Array$[]) - 1
WhileLoop 0, SizeOf(Array$[]) - 1
If &Loop = last&
retString$ = retString$ + Array$[&Loop]
Else
retString$ = retString$ + Array$[&Loop] + Delimiter$
EndIf
EndWhile
Return retString$
EndProc
CLS
B$[0] = "1"
B$[1] = "2"
B$[2] = "3"
B$[3] = "4"
var test$ = "Das|ist|ein|Test!"
A$[] = Explode(test$, "|")
WhileLoop 0, SizeOf(A$[]) - 1
Print A$[&Loop]
EndWhile
Print
text$ = Implode(B$[], ",")
Print text$
WaitInput
End
|
|
|
|
|
|
|
#2 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.082
|
Feine Sache!
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 |
|
|
|
|
|
#3 (Direktlink) |
|
Ist öfter hier
![]() Registriert seit: 12.04.2009
Beiträge: 52
|
Dann ist es ja nicht unnütz.
Geändert von H.Brill (30.10.2011 um 15:39 Uhr) |
|
|
|
|
|
#4 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 15.02.2011
Beiträge: 106
|
Es geht auch ohne Schleife. Dürfte bei größeren Arrays erheblich schneller sein:
Code:
Declare Arr$[]
Cls
WhileLoop 0,6000
Arr$[&Loop] = "Test " + Str$(&Loop)
Wend
Proc Implode
Parameters A$[]
Declare Wert$
Clearlist
MoveArrToList(A$[])
Wert$ =MoveListToStr$("|")
ClearList
Return Wert$
EndProc
Var x& = &GetTickCount
Print Implode(Arr$[])
Print &getTickCount - x&
WaitInput
__________________
Anhören lohnt sich wuestensand.info |
|
|
|
|
|
#5 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.082
|
Wenn einen das zuletzt angefügte Trennzeichen nicht stört: OK (Schlimmstenfalls kann man es ja entfernen).
Es geht sogar ohne explizite Testbelegungsschleife Code:
Declare Arr$[]:SetSize Arr$[],6001:Arr$[]="Test "+Str$(&Index)
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 Geändert von p. specht (30.10.2011 um 18:57 Uhr) |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|