So, habs ein bisschen aufpoliert!
1) Jetzt funktioniert dein _IsPressed , waren 2 fehler drin!
2) Hab megas vorschlag eingebaut, jetzt wird die zuletzt geöffnete Datei beim
Start geöffnet!
3) Hab einen Button eingefügt: "Andere Datenbank" , damit , wenn das zuletzt geöffnete Dokument offen ist, man will aber ein anderes öffnen, es ändern kann ohne die .ini zu löschen! Man kann also einfach eine andere .txt datei angeben , wieder über FileOpenDialog()!
4) Leichtere Anweisungen in der "hilfe" MsgBox()
5) Ich hab dir alles kommentiert damit du es verstehst!
Viel spaß!
[autoit]#include <file.au3>
#include <Array.au3>
#include <GUIConstants.au3>
#include <Misc.au3> ; hat gefehlt!
Global $datei = IniRead(@ScriptDir & "\Vokabelsettings.au3", "file", "path", "0")
if $datei = "0" Then
[/autoit][autoit][/autoit][autoit]Global $datei = FileOpenDialog("Vocabeldatenbank auswählen", @ScriptDir, "Lateinvoc.Dok (*.txt)")
If $datei = "" Then Exit
if $datei <> "" Then
IniWrite(@ScriptDir & "\Vokabelsettings.au3", "file", "path", $datei)
EndIf
Endif
HotKeySet("{ENTER}", "suchen")
GUICreate("Lateinvocabel", 305, 250) ; hab ich gekürzt, klingt einfach besser
GUISetState(@SW_SHOW)
Global $ergebniss
Global $aRecords[100]
$key = "71" ; Das ist die Taste F2
$schliesen1 = GUICtrlCreateButton("&Schließen", 236, 214, 62, 31, -1, -1)
$ergebnisanzeige2 = GUICtrlCreateEdit("" & @CRLF, 1, 104, 304, 107, $ES_AUTOVSCROLL + $WS_VSCROLL)
$progress = GUICtrlCreateProgress(2, 213, 213, 14, -1, -1)
$Suche4 = GUICtrlCreateButton("Suchen",160, 77, 62, 20, -1, -1)
$hilfe5 = GUICtrlCreateButton("&Hilfe", 260, 6, 38, 22, -1, -1)
$anweisung6 = GUICtrlCreateLabel("Bitte geben sie die lateinische Bedeutung des gesuchten Worts hier ein:", 6, 6, 227, 26, -1, -1)
$eingabe7 = GUICtrlCreateInput("Bitte gesuchten Begriff hier eingeben!", 2, 35, 303, 19, -1, -1)
$label8 = GUICtrlCreateLabel("Ergebnissanzeige der Suche:", 4, 86, 150, 13, -1, -1)
$label9 = GUICtrlCreateLabel("", 2, 230, 235, 13, -1, -1)
$speichern10 = GUICtrlCreateButton("&Speichern", 236, 77, 62, 20, -1, -1)
$datei1 = GUICtrlCreateButton("Andere Datenbank", 10, 60) ; knöpfchen für andere DB
GUICtrlSetFont($label9, 7)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $schliesen1
Exit
Case $msg = $hilfe5
MsgBox(0, "Lateinvocabeldatenbanksuche", "by: vinschni " & @CRLF & "th.meger" & @CRLF & "peethebee" & @CRLF & "Huggy")
MsgBox(0, "Neue Vocabeln eigeben", "Für neue Vokabel, bitte in dem Ergebnissfeld, das untere" & @Crlf & "Zuerst das deutsche Vocabel und dann das lateinische!" & @Crlf & "Zum Beispiel: Hallo / Salvete, Salve")
MsgBox(0, "Neue Vocabeln speichern", "Wenn man neue Vocabeln speichern will muss man F2 gedrückt halten, während man auf ""Speichern"" drückt.")
Case $msg = $Suche4
suchen()
Case $msg = $datei1
$datei = FileOpenDialog("Vocabeldatenbank auswählen", @ScriptDir, "Lateinvoc.Dok (*.txt)") ; neue Datenbank zum suchen!
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $speichern10
if _IsPressed($key) Then ; funktioniert jetzt Dank #include <Misc.au3> !!!
FileWrite($datei, GUICtrlRead($ergebnisanzeige2))
Else
_ReplaceStringInFile($datei, $ergebniss, GUICtrlRead($ergebnisanzeige2))
EndIf
EndSelect
WEnd
Func suchen ()
GUICtrlSetData($ergebnisanzeige2, "")
$re = returnLineIfWordFound(GUICtrlRead($eingabe7))
For $i = 0 To 100
GUICtrlSetData($progress, $i)
Sleep(15)
If GUICtrlRead($progress) = 100 Then GUICtrlSetData($label9, "Die Suche nach <" & GUICtrlRead($eingabe7) & "> ist abgeschlossen!")
Next
GUICtrlSetData($ergebnisanzeige2, $re, "-")
EndFunc ;==>suchen
Func returnLineIfWordFound($search)
$ergebniss=""
_FileReadToArray($datei, $aRecords)
For $x = 1 To $aRecords[0]
If StringInStr($aRecords[$x], $search) <> 0 Then $ergebniss = $ergebniss & @CRLF & $aRecords[$x]
Next
Return StringTrimLeft($ergebniss, 1)
EndFunc ;==>returnLineIfWordFound