Post by Heloo1982 » 15 Jan 2019, 13:37
Hallo Gerdi,
vielen Dank für deinen Hinweis, mir war nicht klar, dass es solch eindeutige Regeln für die Formatierung gibt.
SciTE4AutoHotkey hab ich runtergeladen und bin im Debug Mode jede Zeile durch, allerdings hat es mich nicht wirklich erleuchtet.
Ich habe im Loop eine MsgBox eingebaut und da habe ich gemerkt, dass er der Loop zu viele Schleifen hat, da er jede Zeile 2mal durchläuft.
Was ich allerdings nicht verstehe, denn ich dachte
Code: Select all
Loop, parse, A_LoopReadline, A_Tab
bedeutet, er teilt die variablen Reihe für Reihe auf und bricht die Schleife ab, sobald er eine leere Variable trifft.
Was natürlich blöd ist, weil er jede variable einmal unnötig überschreibt.
Wobei ich der Lösung meines ursprünglichen Problems meiner Meinung nach nicht näher gekommen bin, da er einen Menupunkt gar nicht erzeugt,
außer ich benenne den Ordner um, dann ist er auf einmal da.
Ich habe den Code nochmal aufgrund des Hinweises von Gerdi bzgl. der Klammern und des Einrückens angepasst, ich hoffe es passt jetzt halbwegs und der Code ist jetzt für alle besser zu lesen. Ich freue mich über jede Hilfe und bedanke mich schon einmal im Voraus.
Code: Select all
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
Loop, read, Ordner/Textbausteine.txt,
{
Loop, parse, A_LoopReadLine, A_Tab
{
If (A_LoopField="") {
break
}
else {
Einzelmerkmale := StrSplit(A_LoopReadLine, A_Tab)
ebene1_%A_Index% := Einzelmerkmale[2]
Ebene1 := % ebene1_%A_Index%
ebene2_%A_Index% := Einzelmerkmale[3]
Ebene2 := % ebene2_%A_Index%
ebene3_%A_Index% := Einzelmerkmale[4]
MsgBox % Einzelmerkmale[1] Einzelmerkmale[2] Einzelmerkmale[3] Einzelmerkmale[4]
if(Einzelmerkmale[1]="WS") {
Menu, WS%Ebene2%, add,%Ebene2%, Senden_Dummy%A_Index%
Menu, WSEbene1, add, %Ebene1%, :WS%Ebene2%
}
if(Einzelmerkmale[1]="QS") {
Menu, QS%Ebene2%, add, %Ebene2%, Senden_Dummy%A_Index%
Menu, QSEbene1, add, %Ebene1%, :QS%Ebene2%
}
}
}
}
:*:++::
Menu, Start, add, WS, :WSEbene1
Menu, Start, add, QS, :QSEbene1
Menu, Start, show
Return
#Include labels.ahk
TxtSenden:
Sendinput %Textbaustein%
Return
Hallo Gerdi,
vielen Dank für deinen Hinweis, mir war nicht klar, dass es solch eindeutige Regeln für die Formatierung gibt.
SciTE4AutoHotkey hab ich runtergeladen und bin im Debug Mode jede Zeile durch, allerdings hat es mich nicht wirklich erleuchtet.
Ich habe im Loop eine MsgBox eingebaut und da habe ich gemerkt, dass er der Loop zu viele Schleifen hat, da er jede Zeile 2mal durchläuft.
Was ich allerdings nicht verstehe, denn ich dachte
[code]Loop, parse, A_LoopReadline, A_Tab[/code] bedeutet, er teilt die variablen Reihe für Reihe auf und bricht die Schleife ab, sobald er eine leere Variable trifft.
[code]If (A_LoopField="") {
break
}[/code]
Was natürlich blöd ist, weil er jede variable einmal unnötig überschreibt.
Wobei ich der Lösung meines ursprünglichen Problems meiner Meinung nach nicht näher gekommen bin, da er einen Menupunkt gar nicht erzeugt,
außer ich benenne den Ordner um, dann ist er auf einmal da.
Ich habe den Code nochmal aufgrund des Hinweises von Gerdi bzgl. der Klammern und des Einrückens angepasst, ich hoffe es passt jetzt halbwegs und der Code ist jetzt für alle besser zu lesen. Ich freue mich über jede Hilfe und bedanke mich schon einmal im Voraus.
[code]#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
Loop, read, Ordner/Textbausteine.txt,
{
Loop, parse, A_LoopReadLine, A_Tab
{
If (A_LoopField="") {
break
}
else {
Einzelmerkmale := StrSplit(A_LoopReadLine, A_Tab)
ebene1_%A_Index% := Einzelmerkmale[2]
Ebene1 := % ebene1_%A_Index%
ebene2_%A_Index% := Einzelmerkmale[3]
Ebene2 := % ebene2_%A_Index%
ebene3_%A_Index% := Einzelmerkmale[4]
MsgBox % Einzelmerkmale[1] Einzelmerkmale[2] Einzelmerkmale[3] Einzelmerkmale[4]
if(Einzelmerkmale[1]="WS") {
Menu, WS%Ebene2%, add,%Ebene2%, Senden_Dummy%A_Index%
Menu, WSEbene1, add, %Ebene1%, :WS%Ebene2%
}
if(Einzelmerkmale[1]="QS") {
Menu, QS%Ebene2%, add, %Ebene2%, Senden_Dummy%A_Index%
Menu, QSEbene1, add, %Ebene1%, :QS%Ebene2%
}
}
}
}
:*:++::
Menu, Start, add, WS, :WSEbene1
Menu, Start, add, QS, :QSEbene1
Menu, Start, show
Return
#Include labels.ahk
TxtSenden:
Sendinput %Textbaustein%
Return[/code]