Entschuldige, hab nur den Fettsack (Avatar) gesehenMVXA hat geschrieben:Wieso ich, das ist nicht mal mein Codestil o_O. Dachte du kennst mich besser.

Entschuldige, hab nur den Fettsack (Avatar) gesehenMVXA hat geschrieben:Wieso ich, das ist nicht mal mein Codestil o_O. Dachte du kennst mich besser.
Ich würde es so machen.ComputerFreak_PB hat geschrieben:Ich habe einen Text: z.B.: Text(Hallo) . Jetzt möchte ich zurückgegeben haben, was zwischen den Klammern steht.
Code: Alles auswählen
a$="(Hallo)"
Debug Mid(a$,2,Len(a$)-2)
Code: Alles auswählen
*Reg = RegComp ("\((.*)\)")
RegExec(*Reg, "Test(Hallo)")
TextInKlammern$ = Space(500)
RegSub(*Reg, "\1", TextInKlammern$)
Debug TextInKlammern$
Code: Alles auswählen
Text.s = "bla bli blub (Oh si tacuisset!) lalalala träller, pfeif"
#n = 10000000
TestZeit.l = ElapsedMilliseconds()
For i=1 To #n
auf=FindString(Text, "(", 1)
zu=FindString(Text, ")", auf)
Text2.s = PeekS(@Text+auf, zu-auf-1)
Next
Zeit1 = ElapsedMilliseconds()-TestZeit
TestZeit.l = ElapsedMilliseconds()
For i=1 To #n
Text.s = "Test(Hallo)"
pos1 = FindString(Text, "(", 1)
If pos1
pos2 = FindString(Text, ")", pos1)
Text2.s = Mid(Text, pos1 + 1, pos2 - pos1 - 1)
EndIf
Next
Zeit2 = ElapsedMilliseconds()-TestZeit
TestZeit.l = ElapsedMilliseconds()
For i=1 To #n
*char.Character = @Text
While *char\c
Select *char\c
Case '(' : bo = *char + SizeOf(Character)
Case ')'
If bo
CompilerIf #PB_Compiler_Unicode
Text2.s = PeekS(bo,(*char-bo) / SizeOf(Character)) : Break
CompilerElse
Text2.s = PeekS(bo,(*char-bo)) : Break
CompilerEndIf
EndIf
EndSelect
*char + SizeOf(Character)
Wend
Next
Zeit3 = ElapsedMilliseconds()-TestZeit
MessageRequester("Ergebnis","Es wurden je 10000000 Aufrufe gestartet"+#CRLF$+"AND : "+Str(Zeit1)+" ms."+#CRLF$+"ts-soft: "+Str(Zeit2)+" ms."+#CRLF$+"edel : "+Str(Zeit3)+" ms."+#CRLF$,#PB_MessageRequester_Ok)
Code: Alles auswählen
a$="Text(Hallo)"
b$=Mid(a$,FindString(a$,"(",1)+1,FindString(a$,")",1)-FindString(a$,"(",1)-1)
Debug b$
Debug Len(b$)
Versuch damit mal text wie "(test)(text)"Kiffi hat geschrieben:und hier noch 'ne Möglichkeit:
(benötigt die RegExp-Lib von FloHimself)Code: Alles auswählen
*Reg = RegComp ("\((.*)\)") RegExec(*Reg, "Test(Hallo)") TextInKlammern$ = Space(500) RegSub(*Reg, "\1", TextInKlammern$) Debug TextInKlammern$
@edel:
> edel : 2422 ms.
Zeigen!
Grüße ... Kiffi
Code: Alles auswählen
Debug StringField(StringField(a$, 2, "("), 1, ")")
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End