Hallo,
hier habe ich ein multiples Translate$() gemacht.
Ist dafür gedacht, wenn man verschiedene Ersetzungen in einem String braucht.
Code
Declare String z, a[3]
a[0] = "7:00"
a[1] = "7:15"
a[2] = "8:00"
z = "Hans ist um XXXX aufgestanden, hat um XXXX gefrühstückt und ist um XXXX zur Arbeit gefahren."
Window 800, 400
Print z
Print MultiTanslate(z, "XXXX", Array(String "7:00", "7:15", "8:00"))
Print MultiTanslate(z, "XXXX", "7:00|7:15|8:00")
Proc MultiTanslate
Declare Long savepos, savelen, p, x, typ
Select pType$(3)
CaseOf "$"
Parameters String z1, s2, z3
typ = 1
CaseOf "$[]"
Parameters String z1, s2, ersatz[]
typ = 2
EndSelect
x = 0
p = 0
Set("RegEx", 1)
While InStr(s2, z1)
z1 = Del$(z1, %MatchPos, %MatchLen)
If typ = 1
z1 = Ins$(SubStr$(z3, x + 1, "|"), z1, %MatchPos)
ElseIf typ = 2
z1 = Ins$(ersatz[x], z1, %MatchPos)
EndIf
Inc x
Inc p, %MatchLen
EndWhile
Set("RegEx", 0)
Return z1
EndProc
WaitKey
Alles anzeigen
Geht mit einem normalen Array oder mit String "7:00|7:15|8:00".
Vielleicht ist es ja für jemanden brauchbar.