A_LoopReadLine Überprüfen, ob es bestimmtes Zeichen enthält

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: A_LoopReadLine Überprüfen, ob es bestimmtes Zeichen enthält

Re: A_LoopReadLine Überprüfen, ob es bestimmtes Zeichen enthält

Post by songoku » 20 Jul 2018, 16:50

@gregster Danke dir, hat bestens funktioniert.

Re: A_LoopReadLine Überprüfen, ob es bestimmtes Zeichen enthält

Post by gregster » 20 Jul 2018, 15:41

Klar, realisierbar auf jeden Fall. Aber du hast ein paar Syntaxfehler in deinem Skript, insbesondere mit der Funktion Instr(). Bitte schau dir die Dokumentation dazu nochmal an. Außerdem muss es `n und `r heißen ("backtick") - und nicht etwa ´n, in diesem Fall auch ohne Anführungszeichen.

Ein Beispiel ohne Datei (hatte keine Lust, eine anzulegen ;) ):

Code: Select all

var =
(
1
2
3
11:22
)
;--------------------------
F1::
;Fileread, var, datei.txt
Loop, parse, var,`n,`r
{
	msgbox % A_loopfield	
	If InStr(A_Loopfield,":")
	{
		msgbox, ja
	}
	else 
	{
		msgbox, nein
	}
}
return
Entferne einfach den oberen Teil über F1:: und das ; vor FileRead, dann sollte es auch mit einer Textdatei klappen (vorausgesetzt der Dateipfad stimmt). (Fileread is außerdem effizienter als Loop, read - wenn die Textdatei so klein ist wie hier, wäre es aber wahrscheinlich wurscht)

A_LoopReadLine Überprüfen, ob es bestimmtes Zeichen enthält

Post by songoku » 20 Jul 2018, 15:13

Hallo,
ich würde gerne eine TXT Datei nach Zeilenumbruch parsen und anschließend überprüfen ob die Zeile, ein bestimmtes Zeichen in diesem Fall Doppelpunkt enthält.

Code: Select all

F1::

Loop, read, datei.txt
{
Loop, parse, A_LoopReadLine, "´n", "´r"
    {
dop := ":"
If InStr, (%A_LoopReadLine%), dop
{
msgbox, ja
}
else 
{
msgbox, nein
}
}
}
inhalt datei.txt

Code: Select all

1
2
3
11:22
erste Teil funktioniert aber sobald die Zeile ein Doppelpunkt enthält kommt ein Fehlermeldung.
Error: The following variable name contains an illegal character:
"11:22"
ist mein Vorgehen überhaupt so Realisierbar ?

Danke und Gruß

Top