| |
|
|
H.Brill | Hallo Roland, oftmals wäre es interessant, die Anzahl der Ersetzungen zu wissen. Da wäre eine Systemvariable z.B. %Translate gut zu gebrauchen.
Bei den regulären Ausdrücken wäre das auch interessant, um die Anzahl der Treffer zu ermitteln. Man kann ja einen temp. String dazu benutzen, damit keine Veränderungen am Original stattfinden.
Beispiel : Man hat ein String-Array[]. In den einzelnen Strings stehen unterschiedliche Anzahlen von Uhrzeiten (xx:xx). Das können mal eine, zwei oder auch drei sein. Wenn ich jetzt mit einer Schleife durch das Array gehe, könnte ich jetzt ohne Probleme diejenigen rausfiltern, die z.B. drei Uhrzeiten haben.
Ich denke, da gibt es bestimmt noch mehr Einsatzgebiete. Zumindest würde es eine weitere innere Schleife ersparen. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 29.08.2015 ▲ |
|
|
|
|
Michael W. | Ja, zurückgemeldete Ersetzungen machen ja auch Editoren und daran kann man auch oft ablesen, ob da etwas schief gegangen ist. Z.B. wenn man die Anzahl der Vorkommen kennt und es werden sehr viel mehr Ersetzungen angezeigt.
Dafür. |
|
|
| XProfan X3System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 29.08.2015 ▲ |
|
|
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 29.08.2015 ▲ |
|
|
|
|
H.Brill | Jörg Sellmeyer (29.08.15)
Das mag für einfache Trennzeichen bzw. Ersetzungen ja richtig sein, aber wie sieht das denn bei regulären Ausdrücken aus ?
Was ich meine : Ein Trennzeichen ist nicht unbedingt das gleiche, als das, was ich ersetzen will. KompilierenMarkierenSeparieren Versuch doch das mal mit Len(s$, "...") hinzukriegen. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 30.08.2015 ▲ |
|
|
|
|
Jörg Sellmeyer | Na ja - sooo schwer ist es nicht: KompilierenMarkierenSeparierenSet("RegEx",1)
Var s$ = "XXX8:20xxx15:00YYYYY20:00yyyyy"
Var i% = Len(s$,"[]")
Print s$
Print Translate$(s$, "[0-9]{1,2}:[0-9]{1,2}", "[]")
s$ = Translate$(s$, "[0-9]{1,2}:[0-9]{1,2}", "[]")
print Len(s$,"[]") - i%
Waitinput
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 30.08.2015 ▲ |
|
|
|
|
Michael W. | ...und das dann mal auf einen richtig großen Text loslassen...
Schön wäre es, wenn ein einiges Translate$ reichen würde.
Sonst könnte ich ja auch InStr$ in einer Schleife laufen lassen und die Treffer zählen. Dann ist aber das Translate$ sinnlos. |
|
|
| XProfan X3System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 30.08.2015 ▲ |
|
|
|
|
Jörg Sellmeyer | Nein - das mit dem InStr brauchst du eben nicht zu machen, weil Len das in einem Rutsch erledigt. Ich weiß jetzt nicht mehr, ob Translate rekursiv arbeitet. In dem Fall hilft Len nicht weiter aber ansonsten dürfte das relativ narrensicher und auch einigermaßen schnell sein. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 30.08.2015 ▲ |
|
|
|