Hotstring aus Datei per Loop erzeugen

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: Hotstring aus Datei per Loop erzeugen

Re: Hotstring aus Datei per Loop erzeugen

Post by just me » 16 Mar 2019, 11:12

Dann hast Du in NP++ die Byte-Order-Mark (BOM) vergessen. Mit BOM erkennt auch das einfache Notepad die Kodierung.

Re: Hotstring aus Datei per Loop erzeugen

Post by Ahk_fan » 16 Mar 2019, 07:08

Ich werde wahnsinnig! Ja es liegt an der Datei...sobald ich sie mit dem Notepad öffne und speicher, speichert der Notepad es als ANSI, obwohl es im naotepad++ als UTF8 gepeichert wurde.
Danke dir!

Re: Hotstring aus Datei per Loop erzeugen

Post by just me » 16 Mar 2019, 05:35

Moin,

wenn ich Deine Testdaten händisch in die Variable myfile stelle und die dann parse, funktioniert by mir alles wie es soll. Vielleicht ist etwas mit der Datei?

Hotstring aus Datei per Loop erzeugen

Post by Ahk_fan » 16 Mar 2019, 05:06

Hallo Community,

wieder mal ich mit einer wahrscheinlich doofen Frage. Habe mich im Forum dumm und dämlich gesucht, aber nichts passendes gefunden.

Folgendes möchte ich:
Ein kompiliertes Script soll aus einer AHK/TXT Datei die Hotstrings einlesen. Diese Datei ist dynamisch, d.h. kann immer wieder verändert werden, deswegen kommt #Include nicht in Frage, da da ja die Datei in das Script integriert wird.

Problem:
Die Datei wird korrekt eingelesen, geparst und die Arrays an den Befehl Hotstring weitergegeben, allerding funktioniert der Hotstring nicht (siehe 1. Schleife). --> z.B. mfgmm, oder ghm --> geht nicht!
Wenn ich einfach per Loop einen Hotsring erzeuge, geht es (siehe 2.Schleife). --> abc1, abc2 --> geht!

Hier mein Code der Hauptdatei

Code: Select all

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
#Persistent
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
FileRead, myfile, %A_ScriptDir%\test.ahk
Loop, parse, myfile, `n, `r
{
	HSKuerzel :=
	HSText :=
	teilen := strSplit(A_LoopField, ":")
	HSKuerzel := teilen[3]
	HSText := teilen[5]
	;msgbox, %HSKuerzel% / %HSText%
	if HSKuerzel =
		continue
	if HSText =
		continue
	Hotstring("::" HSKuerzel, HSText)
}
loop, 4
{
	HSKuerzel := "abc" A_Index
	HSText := "jldakjdlkajdslkajsle" A_Index
	Hotstring("::" HSKuerzel, HSText)
}
return
und hier die test.ahk, die in das gleich Directory speichern, wie das Hauptscript

Code: Select all

::mfg::Mit freundlichen Grüßen,
::mfgmm::Mit freundlichen Grüßen,max Mustermann
::Fr::Fr.
::Hr::Hr.
::sgdh::Sehr geehrte Damen und Herren,
::sgh::Sehr geehrte Herren,
::BEschaffung::Beschaffung
::grm::Gruß Max
was mache ich falsch?

Danke schon mal!

Top