Page 1 of 1

Textbausteine aus einer Liste abrufen?

Posted: 11 Apr 2019, 05:32
by Peter2
Ich weiss, es ist (auch für mich) nicht sooo schwierig, dass zu programmieren, aber falls es das schon gibt, wäre es unnötige Arbeit, und daher die Frage:

Gibt es / Kennt jemand einen AHK-Code, der

- mit irgendeinem Hotkey eine INI-Datei ausliest (INI ist irgendwie übersichtlicher und leichter pflegbar als Definitionen im Code für Menüs oder ...)
- in der INI stehen Textbausteine:
1= Hallo
2= Auf Wiedersehen
3=Wie geht es dir?
4=...

- Diese Inhalte werden in einer Liste angezeigt.
- Ich wähle dann was (z.B. die Zeile 3)
- AHK schreibt "Wie geht es dir?"

Danke für Hinweise.

Peter

Re: Textbausteine aus einer Liste abrufen?  Topic is solved

Posted: 11 Apr 2019, 09:26
by swagfag

Code: Select all

FileRead ini, inifile.ini

Loop Parse, ini, `n, `r
{
	val := StrSplit(A_LoopField, "=")[2]
	ddl .= val (A_Index = 1 ? "||" : "|")
}

Gui Add, DropDownList, gDDL, % ddl
Gui Show

Esc::ExitApp

DDL:
	MsgBox % A_GuiControl
Return

Re: Textbausteine aus einer Liste abrufen?

Posted: 11 Apr 2019, 09:54
by Peter2
Oops - da ist ja noch um den Faktor 5-10 kleiner als gedacht ..Vielen Dank!

Jetzt muss ich noch die Kommunikation zwischen dem aufrufenden Programm (Fenster) und der Werteingabe hinkriegen, dann läuft es ...

Re: Textbausteine aus einer Liste abrufen?

Posted: 11 Apr 2019, 10:22
by just me
Moin,

der Code von swagfag berücksichtigt keine Sektionen [Sektion], die eigentlich fester Bestandteil von INI-Dateien sind. Wenn Du mit einer Fake-INI auskommst, kannst Du Dir das Gedöns mit Key=Value komplett schenken. Dann wäre es eine normale Textdatei mit einem Eintrag pro Zeile wie z.B.

Code: Select all

Hallo
Auf Wiedersehen
Wie geht es dir?
...
Das Einlesen könnte dann so aussehen:

Code: Select all

BausteinDatei := "Textbausteine.txt"
DDL := ""
Loop, Read, %BausteinDatei%
{
	If (A_LoopReadLine <> "")
		DDL .= A_LoopReadLine  . (A_Index = 1 ? "||" : "|")
}
Das Ganze eignet sich aber meiner Meinung nach nur für kurze Bausteine.

Re: Textbausteine aus einer Liste abrufen?

Posted: 12 Apr 2019, 01:51
by Peter2
Danke an beide.

Ja, die INI-Idee hinterfrage ich auch schon. Ich dachte vorerst an die Logik "Abkürzung=langer String", aber mit Einzelzeilen wird das auch passen. Textblöcke habe ich nicht vvor, nur Einzelzeilen und Befehle.

Re: Textbausteine aus einer Liste abrufen?

Posted: 13 Apr 2019, 06:57
by list
Perhaps lintalist for longer texts might be useful? See https://www.autohotkey.com/boards/viewtopic.php?f=6&t=3378

Re: Textbausteine aus einer Liste abrufen?

Posted: 23 Apr 2019, 05:06
by Peter2
@list
"lintalist" seem to be great, but at the moment it is a little bit to much sophisticated. But I will keep it in mind. Thanks.