Akzent-Zeichen (`) im Text finden ?

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

gero
Posts: 173
Joined: 02 Oct 2013, 05:36

Akzent-Zeichen (`) im Text finden ?

07 Nov 2013, 12:36

Hallo zusammen
Ich bastle schon einen ganze weile an dem Problem herum und komme einfach nicht drauf.
Wie finde ich ein einzelnes Akzent-Zeichen (`) in einem Text ?
denn so gehts nicht:

Code: Select all

TEXT=aaa ` bbb
IfInString,TEXT, `
    MsgBox,Treffer - Akzent im Text
Mir ist klar, dass das Zeichen Schutzfunktion hat, doch mit einem Syntaxtrick muss es doch irgendwie gehen ? Ich habe auch schon mit dem Steuezeichen (BS) experimentiert - ohne Erfolg.
Ich will auch nicht über #EscapeChar ein neues Schutzzeichen zuweisen.


gruss
gero
strobo
Posts: 125
Joined: 30 Sep 2013, 15:24

Re: Akzent-Zeichen (`) im Text finden ?

07 Nov 2013, 13:11

doppel Akzent `` entspricht dem Akzent `
gero
Posts: 173
Joined: 02 Oct 2013, 05:36

Re: Akzent-Zeichen (`) im Text finden ?

07 Nov 2013, 13:21

... das ist mir schon klar, aber im Eingangstext (hier TEXT ) ist halt nur ein einzelnes Akzentzeichen enthalten ... und das will ich ja suchen.
Es geht um die Syntax der Nadel ... am Heuhaufen kann ich nichts ändern.

gruss
gero
strobo
Posts: 125
Joined: 30 Sep 2013, 15:24

Re: Akzent-Zeichen (`) im Text finden ?

07 Nov 2013, 13:39

Warum hast du die Nadel denn nicht entprechend escaped? nvm.
Wenn der Heuhaufen in deinem Skript steht (im gegensatz zu z.b. per fileread eingelesen) schafft es der einzeine Akzent einfach nicht in den String, da kann man suchen aber nicht finden.
gero
Posts: 173
Joined: 02 Oct 2013, 05:36

Re: Akzent-Zeichen (`) im Text finden ?

07 Nov 2013, 14:03

Warum ? ... weil der Heuhaufen ist wie er ist (!) - bitte, bitte ohne Wenn + Aber ... kommt ja in echt übers ClipBoard oder FileRead ... ist doch hier nur ein Beispiel ... :roll: ... und soll erst bearbeitet werden.

Habe aber die (eine) Lösung gefunden ... wusste nicht, dass man das Schutzzeichen mehrmals im Script ändern kann ...

Code: Select all

#EscapeChar /
TEXT=aaa ` bbb
IfInString,TEXT, `
    MsgBox,Treffer - Akzent im Text
#EscapeChar `
trotzdem Danke für's Lesen

gruss
gero
strobo
Posts: 125
Joined: 30 Sep 2013, 15:24

Re: Akzent-Zeichen (`) im Text finden ?

07 Nov 2013, 14:19

Strings im Skript werden anders behandelt (Sonderzeichen werden ersetzt etc), als Strings die man z.b. per fileread reinholt, dort ist `n auch wirklich `n. Dass du die Nadel (nicht den Hauhaufen) übers Clipboard reinholen willst und sie (die Nadel, nicht den Heuhaufen) deswegen nicht escapest, ist wirklich überraschend...
gero
Posts: 173
Joined: 02 Oct 2013, 05:36

Re: Akzent-Zeichen (`) im Text finden ?

07 Nov 2013, 14:55

@strobo ... wir haben IMHO aneinander vorbeigeredet ... ich habe eine Lösung gefunden, die funktioniert.
Wenn du eine bessere / andere hast, mit genau den im Eg-Post genannten Bedinungen, dann poste sie doch einfach und gut ist ... ;)

gruss
gero
strobo
Posts: 125
Joined: 30 Sep 2013, 15:24

Re: Akzent-Zeichen (`) im Text finden ?

07 Nov 2013, 15:13

Wenn du eine bessere / andere hast, mit genau den im Eg-Post genannten Bedinungen, dann poste sie doch einfach und gut ist
Das scheitert nicht zuletzt an dieser im Eg-Post genannten Bedingung:
Ich will auch nicht über #EscapeChar ein neues Schutzzeichen zuweisen.
Sorry, ich tu mich schwer mit dem Dranvorbeilesen, auch bei dieser Bedingung.
Danke fürs Dranvorbeilesen und <Sarkasmus aus> gut ist.
User avatar
SAPlayer
Posts: 48
Joined: 30 Sep 2013, 13:38
Location: Germany
Contact:

Re: Akzent-Zeichen (`) im Text finden ?

07 Nov 2013, 15:29

Die Lösung ist tatsächlich diese:

Code: Select all

IfInString,TEXT, ``
Andernfalls geht auch das (meiner Meinung nach schöner):

Code: Select all

if(InStr(TEXT, "`"))
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Akzent-Zeichen (`) im Text finden ?

07 Nov 2013, 15:42

Ich will hinzufügen, dass nur du an strobo vorbei geredet hast und er Recht hat.
Recommends AHK Studio
gero
Posts: 173
Joined: 02 Oct 2013, 05:36

Re: Akzent-Zeichen (`) im Text finden ?

07 Nov 2013, 15:49

:D :D :D ... jetzt aber !
Bei mir geht das nicht !

Code: Select all

TEXT=aaa ` bbb
IfInString,TEXT, ``
    MsgBox,Treffer - Akzent im Text
... so wird der Akzent bei mir aber nicht gefunden ... ???

@SAPlayer ... deine 2. Lösung hingegen funktioniert tadellos.

Code: Select all

TEXT=aaa ` bbb
if(InStr(TEXT, "`"))
    MsgBox,Treffer - Akzent im Text
gruss
gero
strobo
Posts: 125
Joined: 30 Sep 2013, 15:24

Re: Akzent-Zeichen (`) im Text finden ?

07 Nov 2013, 16:55

Ne, die funktioniert nicht, weil der Akzent gar nicht in TEXT ankommt. Habe ich schon erwähnt, dass der Akzent gar nicht in TEXT ankommt?

Code: Select all

TEXT=aaaa ` bbbb
msgbox,% TEXT ; kein Akzent.
msgbox,% instr(TEXT, "`")
So kommt er in TEXT an

Code: Select all

TEXT=
(`
aaaa ` bbbb
)
msgbox,% TEXT
;)
gero
Posts: 173
Joined: 02 Oct 2013, 05:36

Re: Akzent-Zeichen (`) im Text finden ?

07 Nov 2013, 17:34

mea maxima culpa

... im richtigen Script läuft es ... nur in meinem Beispiel hier nicht ...
(hatte immer nur mit meinem Beispiel experimentiert)

Code: Select all

FileRead,Text,%A_Desktop%\00.txt ; (Inhalt der Datei z.B.: aaa ` bbb)
IfInString,TEXT, ``
    MsgBox,Treffer - Akzent im Text
nochmals sorry ... und DANKE für die Geduld

gruss
gero
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Akzent-Zeichen (`) im Text finden ?

08 Nov 2013, 00:42

Wie gesagt du musst auch das Akzent im Text escapen also mit einem zusatz akzent versehen, damit es als String gespeichert wird:

Code: Select all

TEXT=aaaa `` bbbb
msgbox,% TEXT ; Akzent.
msgbox,% instr(TEXT, "``")
Recommends AHK Studio
User avatar
SAPlayer
Posts: 48
Joined: 30 Sep 2013, 13:38
Location: Germany
Contact:

Re: Akzent-Zeichen (`) im Text finden ?

08 Nov 2013, 10:55

@nnnik: Beim Expression-InStr muss/darf man keine doppelten Akzente nutzen.

@gero: Mich wundert, wieso mein zweites Beispiel mit deinem (falschen) Test-Script funktioniert...
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Akzent-Zeichen (`) im Text finden ?

08 Nov 2013, 13:24

Ich habe aber vorher getestet ob der Code funktioniert.
Und bei mir tut er es.
Mit nur einem Akzent.
Recommends AHK Studio
strobo
Posts: 125
Joined: 30 Sep 2013, 15:24

Re: Akzent-Zeichen (`) im Text finden ?

08 Nov 2013, 13:36

"`" ist der leere string und der wird in "aaaa bbbb" gefunden an position 1.
User avatar
SAPlayer
Posts: 48
Joined: 30 Sep 2013, 13:38
Location: Germany
Contact:

Re: Akzent-Zeichen (`) im Text finden ?

08 Nov 2013, 14:14

Oh, okay, danke für den Hinweis.
Klingt logisch.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: divanebaba and 23 guests