Hallo zusammen,
ich habe hier ein Programm mit dem ich meine .data Dateien bearbeiten kann, zb. Zeilen einfügen, umbenennen, befüllen usw.
Nun möchte ich dieses gern um eine Funktion (sofern möglich) erweitern, aber weiss leider nicht wie und wollte euch daher um Hilfe bitten.
Programm:
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlusConstants.au3>
#include <StaticConstants.au3>
#include <ScrollBarConstants.au3>
#include <StructureConstants.au3>
#include <ScreenCapture.au3>
#include <GUIScrollbars_Ex.au3>
#include <GDIPlus.au3>
#include <FTPEx.au3>
Global $ANZDATEN, $ANZSTRUKTUR, $DATEN[2000][50], $FILE, $TEMP, $T[100], $DATEI = "", $EINGABE[50], $DATENSATZ = 1, $BUTTONVOR, $BUTTONBACK, $SATZ, $BUTTONNEU, $BUTTONCOPY, $BUTTONDEL
Global $BUTTONPASTE, $COPY[50], $BUTTONSEARCH, $SUCHE, $MERK, $FUND, $GRAFIK, $BUTTONPLUS, $NAME, $LASTLOAD, $CAPTURE = 0
Global $TRANSLATE[500][2][10], $ANZTRANSLATION = 0, $TEMP1, $TEMP2
Global $FTP = 0, $SERVER = "xxxxxxxxx", $USERNAME = "xxxxxxxxxx", $PASSWORD = "xxxxxxxx"
Global $ADMIN = 1
Global $SCRIPTPATH = @ScriptDir & "\", $GRAFIKPATH, $UPDATEPATH = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Almanac_Datenbanktool", "Updatepath")
LADENTRANSLATION()
If $UPDATEPATH = "" Then $UPDATEPATH = $SCRIPTPATH
$fRest = False
$MAINWINDOW = GUICreate("Datenbanktool Neu", 870, 680, -1, -1)
GUICtrlSetBkColor(-1, 16777215)
GUISetState(@SW_SHOW)
_GUIScrollbars_Generate($MAINWINDOW, 500, 5000)
$MENU10 = GUICtrlCreateMenu("Datenbank")
$MENU11 = GUICtrlCreateMenuItem("Laden", $MENU10)
$MENU12 = GUICtrlCreateMenuItem("Speichern", $MENU10)
$LASTLOAD = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Almanac_Datenbanktool", "LastOpen")
If $LASTLOAD <> "" Then
GUICtrlCreateMenuItem("", $MENU10)
$MENU13 = GUICtrlCreateMenuItem($LASTLOAD, $MENU10)
EndIf
GUICtrlCreateMenuItem("", $MENU10)
$MENU14 = GUICtrlCreateMenuItem("Auf FTP Server hochladen", $MENU10)
If $ADMIN = 0 Then GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateMenuItem("", $MENU10)
$MENU15 = GUICtrlCreateMenuItem("Updatepfad:" & $UPDATEPATH, $MENU10)
$MENU20 = GUICtrlCreateMenu("Bearbeiten")
$MENU21 = GUICtrlCreateMenuItem("Ersetzen", $MENU20)
$MENU22 = GUICtrlCreateMenu("Übersetzen", $MENU20)
$MENU23 = GUICtrlCreateMenuItem("Zeilen zusammenfügen", $MENU20)
If $ADMIN = 0 Then GUICtrlSetState(-1, $GUI_DISABLE)
$MENU24 = GUICtrlCreateMenuItem("Feld löschen", $MENU20)
If $ADMIN = 0 Then GUICtrlSetState(-1, $GUI_DISABLE)
$MENU25 = GUICtrlCreateMenuItem("Feld umbenennen", $MENU20)
$MENU26 = GUICtrlCreateMenuItem("Neues Feld einfügen", $MENU20)
If $ADMIN = 0 Then GUICtrlSetState(-1, $GUI_DISABLE)
$MENU27 = GUICtrlCreateMenu("Zeile Verschieben", $MENU20)
$MENUGER = GUICtrlCreateMenuItem("deutsch -> englisch", $MENU22)
$MENUENG = GUICtrlCreateMenuItem("englisch -> deutsch", $MENU22)
$BUTTONBACK = GUICtrlCreateButton("<-", 220, 30, 30, 20)
$BUTTONVOR = GUICtrlCreateButton("->", 250, 30, 30, 20)
$BUTTONNEU = GUICtrlCreateButton("Neu", 490, 30, 30, 20)
$BUTTONCOPY = GUICtrlCreateButton("Copy", 520, 30, 30, 20)
$BUTTONPASTE = GUICtrlCreateButton("Paste", 550, 30, 40, 20)
$BUTTONDEL = GUICtrlCreateButton("Del", 590, 30, 30, 20)
$SUCHE = GUICtrlCreateInput("", 300, 30, 130, 20)
$BUTTONSEARCH = GUICtrlCreateButton("Suche", 435, 30, 40, 20)
$BUTTONPLUS = GUICtrlCreateButton("+Zeile", 630, 30, 40, 20)
If $ADMIN = 0 Then GUICtrlSetState(-1, $GUI_DISABLE)
$GRAFIKZUORDNEN = GUICtrlCreateButton("Grafik zuord.", 680, 30, 90, 20)
$SPEICHERN = GUICtrlCreateButton("Speichern.", 775, 30, 70, 20)
$T[0] = GUICtrlCreateLabel("Datensatz 0 / 0", 10, 30, 200, 20, $SS_SUNKEN)
$GRAFIK = GUICtrlCreatePic($SCRIPTPATH & "data\common\nopic.tgx", 780, 14, 35, 35)
GUICtrlSetImage(-1, $SCRIPTPATH & "data\common\nopic.tgx")
HotKeySet("+^2", "SCREENSHOT")
HotKeySet("+^3", "SCREENSHOT2")
While 1
$MSG = GUIGetMsg(0)
If $Msg = -3 Then Exit DATENBANK_SPEICHERN()
If $MSG = $MENU11 Then
If $DATEI = "" Then
$DATEI = FileOpenDialog("Wähle Datenbank", @ScriptDir & "\data\", "Datenbank (*.data)")
If StringInStr($DATEI, ".data") = 0 Then
MsgBox(16, "Error", "Keine gültige Datenbank.")
Else
DATENBANK_LADEN()
EndIf
ElseIf $DATEI <> "" Then
For $I = 1 To $ANZSTRUKTUR + 1
GUICtrlDelete($T[$I])
Next
For $I = 0 To $ANZSTRUKTUR
GUICtrlDelete($EINGABE[$I])
Next
$DATEI = FileOpenDialog("Wähle Datenbank", @ScriptDir & "\data\", "Datenbank (*.data)")
If StringInStr($DATEI, ".data") = 0 Then
MsgBox(16, "Error", "Keine gültige Datenbank.")
Else
DATENBANK_LADEN()
EndIf
EndIf
EndIf
If $MSG = $GRAFIK And $CAPTURE = 1 Then
$JANEIN = MsgBox(36, "Grafik übernehmen", "Grafik für aktuellen Datensatz speichern?", 0)
If $JANEIN = 6 Then
FileCopy($SCRIPTPATH & "screenshots\graphic.jpg", $UPDATEPATH & "\" & $DATEN[$DATENSATZ][0] & ".tgx", 1)
FileMove($SCRIPTPATH & "screenshots\graphic.jpg", $GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx", 1)
EndIf
EndIf
If $MSG = $GRAFIKZUORDNEN And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$GRAFIKORDNER = FileOpenDialog('Wähle zuzuordn. Grafik für "' & $DATEN[$DATENSATZ][0] & '" .', $GRAFIKPATH, "Almanach Graphik (*.tgx)")
If StringInStr($GRAFIKORDNER, ".tgx") = 0 Then
MsgBox(16, "Error", "No guilty graphic!")
Else
FileMove($GRAFIKORDNER, $GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx")
MsgBox(64, "Grafik zuordn.", 'Graphik umbenannt nach "' & $DATEN[$DATENSATZ][0] & '.tgx".', 0)
EndIf
EndIf
If $LASTLOAD <> "" And $MSG = $MENU13 Then
$DATEI = $LASTLOAD
If $DATEI = "" Then
DATENBANK_LADEN()
ElseIf $DATEI <> "" Then
For $I = 1 To $ANZSTRUKTUR + 1
GUICtrlDelete($T[$I])
Next
For $I = 0 To $ANZSTRUKTUR
GUICtrlDelete($EINGABE[$I])
Next
DATENBANK_LADEN()
EndIf
EndIf
If $MSG = $MENU15 Then
$TEST = FileSelectFolder("Bitte Pfad für Update Dateien wählen:", "")
If $TEST <> "" Then
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Almanac_Datenbanktool", "Updatepath", "REG_SZ", $TEST)
$UPDATEPATH = $TEST
GUICtrlSetData($MENU15, "Updatepfad: " & $UPDATEPATH)
EndIf
EndIf
If $MSG = $MENU12 And $DATEI <> "" And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
DATENBANK_SPEICHERN()
EndIf
If $MSG = $SPEICHERN And $DATEI <> "" And $DATEI <> "" Then
;For $I = 0 To $ANZSTRUKTUR
; $DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
; Next
DB_SPEICHERN()
EndIf
If $MSG = $MENU14 And $DATEI <> "" Then
FTPLOAD()
EndIf
If $MSG = $BUTTONVOR And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$DATENSATZ = $DATENSATZ + 1
If $DATENSATZ > $ANZDATEN Then $DATENSATZ = 1
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
GUICtrlSetData($T[0], "Datensatz " & $DATENSATZ & " / " & $ANZDATEN)
If FileExists($GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx") = 1 Then
GUICtrlSetImage($GRAFIK, $GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx")
Else
GUICtrlSetImage($GRAFIK, $SCRIPTPATH & "data\common\nopic.tgx")
EndIf
$CAPTURE = 0
EndIf
If $MSG = $BUTTONBACK And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$DATENSATZ = $DATENSATZ - 1
If $DATENSATZ = 0 Then $DATENSATZ = $ANZDATEN
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
GUICtrlSetData($T[0], "Datensatz " & $DATENSATZ & " / " & $ANZDATEN)
If FileExists($GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx") = 1 Then
GUICtrlSetImage($GRAFIK, $GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx")
Else
GUICtrlSetImage($GRAFIK, $SCRIPTPATH & "data\common\nopic.tgx")
EndIf
$CAPTURE = 0
EndIf
If $MSG = $BUTTONNEU And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$ANZDATEN = $ANZDATEN + 1
$DATENSATZ = $ANZDATEN
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
GUICtrlSetData($T[0], "Datensatz " & $DATENSATZ & " / " & $ANZDATEN)
EndIf
If $MSG = $BUTTONCOPY Then
KOPIEREN()
EndIf
If $MSG = $BUTTONPASTE Then
EINFUEGEN()
EndIf
If $MSG = $BUTTONDEL And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], "")
Next
EndIf
If $MSG = $BUTTONSEARCH Then
SUFU()
EndIf
If $MSG = $BUTTONPLUS And $DATEI <> "" Then
$NAME = InputBox("Neue Zeile hinzufügen", "Name der Zeile", "")
If $DATEN[0][$ANZSTRUKTUR] = "*" Then
$ANZSTRUKTUR = $ANZSTRUKTUR + 1
$DATEN[0][$ANZSTRUKTUR] = "*"
For $I = 1 To $ANZDATEN
$DATEN[$I][$ANZSTRUKTUR - 1] = $DATEN[$I][$ANZSTRUKTUR - 2]
$DATEN[$I][$ANZSTRUKTUR - 2] = "-"
Next
GUICtrlSetData($EINGABE[$ANZSTRUKTUR - 2], $DATEN[$DATENSATZ][$ANZSTRUKTUR - 2])
GUICtrlSetData($T[1 + $ANZSTRUKTUR - 1], $NAME)
$SATZ = StringLeft($SATZ, StringLen($SATZ) - 1) & $NAME & ",*"
Else
$ANZSTRUKTUR = $ANZSTRUKTUR + 1
For $I = 1 To $ANZDATEN
$DATEN[$I][$ANZSTRUKTUR - 1] = "-"
Next
$DATEN[0][$ANZSTRUKTUR] = $NAME
$SATZ = $SATZ & "," & $NAME
EndIf
$EINGABE[$ANZSTRUKTUR - 1] = GUICtrlCreateInput($DATEN[$DATENSATZ][$ANZSTRUKTUR - 1], 220, 67 + ($ANZSTRUKTUR - 1) * 18, 600, 17)
$T[1 + $ANZSTRUKTUR] = GUICtrlCreateLabel($DATEN[0][$ANZSTRUKTUR], 10, 50 + $ANZSTRUKTUR * 18, 200, 15, $SS_SUNKEN)
DATENBANK_SPEICHERN()
EndIf
If $MSG = $MENU21 And $DATEI <> "" Then
$BEARBEITEN = InputBox("Ersetzen", "Welche Zeile bearbeiten (1-" & $ANZSTRUKTUR & ") ?")
If $BEARBEITEN > 0 And $BEARBEITEN < $ANZSTRUKTUR + 1 Then
$BEARBEITEN2 = InputBox("Ersetzen", "Welchen Text ersetzen ?")
$BEARBEITEN3 = InputBox("Ersetzen", "Ersetzen mit?")
For $I = 1 To $ANZDATEN
If $BEARBEITEN2 <> "" Then
If StringInStr($DATEN[$I][$BEARBEITEN - 1], $BEARBEITEN2) > 0 Then
$DATEN[$I][$BEARBEITEN - 1] = StringReplace($DATEN[$I][$BEARBEITEN - 1], $BEARBEITEN2, $BEARBEITEN3)
EndIf
Else
$DATEN[$I][$BEARBEITEN - 1] = $BEARBEITEN3
EndIf
Next
GUICtrlSetData($EINGABE[$BEARBEITEN - 1], $DATEN[$DATENSATZ][$BEARBEITEN - 1])
EndIf
EndIf
If $MSG = $MENU23 And $DATEI <> "" Then
$BEARBEITEN = InputBox("Zeilen zusammenfügen", "Welche Zeile ausschneiden (1-" & $ANZSTRUKTUR & ") ?")
If $BEARBEITEN > 0 And $BEARBEITEN < $ANZSTRUKTUR + 1 Then
$BEARBEITEN2 = InputBox("Zeilen zusammenfügen", "In welche Zeile anhängen (1-" & $ANZSTRUKTUR & ") ? ")
If $BEARBEITEN2 > 0 And $BEARBEITEN2 < $ANZSTRUKTUR + 1 And $BEARBEITEN <> $BEARBEITEN2 Then
For $I = 1 To $ANZDATEN
If $DATEN[$I][$BEARBEITEN - 1] <> "" And $DATEN[$I][$BEARBEITEN - 1] <> "-" Then
If $DATEN[$I][$BEARBEITEN2 - 1] <> "" And $DATEN[$I][$BEARBEITEN2 - 1] <> "-" Then
$DATEN[$I][$BEARBEITEN2 - 1] = $DATEN[$I][$BEARBEITEN2 - 1] & "§§" & $DATEN[$I][$BEARBEITEN - 1]
Else
$DATEN[$I][$BEARBEITEN2 - 1] = $DATEN[$I][$BEARBEITEN - 1]
EndIf
$DATEN[$I][$BEARBEITEN - 1] = ""
GUICtrlSetData($EINGABE[$BEARBEITEN - 1], $DATEN[$DATENSATZ][$BEARBEITEN - 1])
GUICtrlSetData($EINGABE[$BEARBEITEN2 - 1], $DATEN[$DATENSATZ][$BEARBEITEN2 - 1])
EndIf
Next
EndIf
EndIf
EndIf
If $MSG = $MENU25 And $DATEI <> "" Then
$BEARBEITEN = InputBox("Feld umbenennen", "Welches Feld umbenennen (1-" & $ANZSTRUKTUR & ") ?")
If $BEARBEITEN > 0 And $BEARBEITEN < $ANZSTRUKTUR + 1 Then
$BEARBEITEN2 = InputBox("Feld umbenennen", 'Feld "' & $DATEN[0][$BEARBEITEN] & '" umbenennen in?')
If $BEARBEITEN2 <> "" Then
$DATEN[0][$BEARBEITEN] = $BEARBEITEN2
GUICtrlSetData($T[1 + $BEARBEITEN], $DATEN[0][$BEARBEITEN])
$SATZ = $DATEN[0][1]
For $I = 2 To $ANZSTRUKTUR
$SATZ = $SATZ & "," & $DATEN[0][$I]
Next
EndIf
EndIf
EndIf
If $MSG = $MENU24 And $DATEI <> "" Then
$BEARBEITEN = InputBox("Feld löschen", "Welches Feld löschen (1-" & $ANZSTRUKTUR & ") ?")
If $BEARBEITEN > 0 And $BEARBEITEN < $ANZSTRUKTUR + 1 Then
For $ZZ = 1 To $ANZDATEN
For $I = $BEARBEITEN - 1 To $ANZSTRUKTUR - 1
$DATEN[$ZZ][$I] = $DATEN[$ZZ][$I + 1]
Next
$DATEN[$ZZ][$ANZSTRUKTUR] = ""
Next
For $I = $BEARBEITEN To $ANZSTRUKTUR - 1
$DATEN[0][$I] = $DATEN[0][$I + 1]
GUICtrlSetData($T[1 + $I], $DATEN[0][$I])
Next
$DATEN[0][$ANZSTRUKTUR] = ""
GUICtrlDelete($T[1 + $ANZSTRUKTUR])
For $I = $BEARBEITEN - 1 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
GUICtrlDelete($EINGABE[$ANZSTRUKTUR - 1])
$ANZSTRUKTUR = $ANZSTRUKTUR - 1
$SATZ = $DATEN[0][1]
For $I = 2 To $ANZSTRUKTUR
$SATZ = $SATZ & "," & $DATEN[0][$I]
Next
EndIf
EndIf
If $MSG = $MENU26 And $DATEI <> "" Then
$BEARBEITEN = InputBox("Neues Feld einfügen", "Hinter welchem Feld einfügen (1-" & $ANZSTRUKTUR & ") ?")
If $BEARBEITEN > 0 And $BEARBEITEN < $ANZSTRUKTUR + 1 Then
$BEARBEITEN2 = InputBox("Neues Feld einfügen", "Feldname?")
If $BEARBEITEN2 <> "" Then
For $ZZ = 1 To $ANZDATEN
For $I = $ANZSTRUKTUR To $BEARBEITEN Step -1
$DATEN[$ZZ][$I + 1] = $DATEN[$ZZ][$I]
Next
$DATEN[$ZZ][$BEARBEITEN] = "-"
Next
For $I = $ANZSTRUKTUR To $BEARBEITEN + 1 Step -1
$DATEN[0][$I + 1] = $DATEN[0][$I]
GUICtrlSetData($T[2 + $I], $DATEN[0][$I])
Next
$DATEN[0][$BEARBEITEN + 1] = $BEARBEITEN2
GUICtrlSetData($T[1 + $BEARBEITEN + 1], $DATEN[0][$BEARBEITEN + 1])
$ANZSTRUKTUR = $ANZSTRUKTUR + 1
$EINGABE[$ANZSTRUKTUR - 1] = GUICtrlCreateInput($DATEN[$DATENSATZ][$ANZSTRUKTUR - 1], 220, 67 + ($ANZSTRUKTUR - 1) * 18, 600, 17)
$T[1 + $ANZSTRUKTUR] = GUICtrlCreateLabel($DATEN[0][$ANZSTRUKTUR], 10, 50 + $ANZSTRUKTUR * 18, 200, 15, $SS_SUNKEN)
For $I = $BEARBEITEN To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
$SATZ = $DATEN[0][1]
For $I = 2 To $ANZSTRUKTUR
$SATZ = $SATZ & "," & $DATEN[0][$I]
Next
EndIf
EndIf
EndIf
If $MSG = $MENUENG And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
For $I = 1 To $ANZDATEN
For $TT = 0 To $ANZSTRUKTUR - 1
For $TZ = 1 To $ANZTRANSLATION
For $TG = 0 To 9
If StringInStr($DATEN[$I][$TT], $TRANSLATE[$TZ][0][$TG]) > 0 And $TRANSLATE[$TZ][0][$TG] <> "" Then
$DATEN[$I][$TT] = StringReplace($DATEN[$I][$TT], $TRANSLATE[$TZ][0][$TG], $TRANSLATE[$TZ][1][0])
EndIf
Next
Next
Next
Next
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
EndIf
If $MSG = $MENUGER And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
For $I = 1 To $ANZDATEN
For $TT = 0 To $ANZSTRUKTUR - 1
For $TZ = 1 To $ANZTRANSLATION
For $TG = 0 To 9
If StringInStr($DATEN[$I][$TT], $TRANSLATE[$TZ][1][$TG]) > 0 And $TRANSLATE[$TZ][1][$TG] <> "" Then
$DATEN[$I][$TT] = StringReplace($DATEN[$I][$TT], $TRANSLATE[$TZ][1][$TG], $TRANSLATE[$TZ][0][0])
EndIf
Next
Next
Next
Next
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
EndIf
WEnd
Func DATENBANK_LADEN()
For $I = 0 To 1100
For $Z = 0 To 49
$DATEN[$I][$Z] = ""
Next
Next
$FILE = FileOpen($DATEI, 0)
If StringInStr($DATEI, "languagepacks\") > 0 Then
Local $TD = "data\" & StringRight($DATEI, StringLen($DATEI) - StringInStr($DATEI, "\", 2, -1))
$GRAFIKPATH = StringReplace($DATEI, $TD, "graphics\")
EndIf
$ANZDATEN = FileReadLine($FILE)
$TEMP = FileReadLine($FILE)
$SATZ = $TEMP
$ZZ = 0
While StringInStr($TEMP, ",") > 0
$ZZ = $ZZ + 1
$DATEN[0][$ZZ] = StringLeft($TEMP, StringInStr($TEMP, ",") - 1)
$TEMP = StringReplace($TEMP, $DATEN[0][$ZZ] & ",", "")
WEnd
$ZZ = $ZZ + 1
$DATEN[0][$ZZ] = $TEMP
$ANZSTRUKTUR = $ZZ
For $I = 1 To $ANZDATEN
For $Z = 0 To $ANZSTRUKTUR - 1
$DATEN[$I][$Z] = FileReadLine($FILE)
Next
Next
FileClose($FILE)
$T[1] = GUICtrlCreateLabel(StringRight($DATEI, StringLen($DATEI) - StringInStr($DATEI, "\", 0, -1)), 10, 5, 500, 20)
GUICtrlSetFont(-1, 14, 400, 0)
GUICtrlSetData($T[0], "Dataset 1 / " & $ANZDATEN)
For $I = 1 To $ANZSTRUKTUR
$T[1 + $I] = GUICtrlCreateLabel($DATEN[0][$I], 10, 50 + $I * 18, 200, 15, $SS_SUNKEN)
Next
For $I = 0 To $ANZSTRUKTUR - 1
$EINGABE[$I] = GUICtrlCreateInput($DATEN[1][$I], 220, 67 + $I * 18, 600, 17)
Next
$DATENSATZ = 1
If FileExists($GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx") = 1 Then
GUICtrlSetImage($GRAFIK, $GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx")
Else
GUICtrlSetImage($GRAFIK, $SCRIPTPATH & "data\common\nopic.tgx")
EndIf
$CAPTURE = 0
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Almanac_Datenbanktool", "LastOpen", "REG_SZ", $DATEI)
EndFunc
Func DATENBANK_SPEICHERN()
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$FILE = FileOpen($DATEI, 2)
If $FILE = -1 Then Exit MsgBox(0, "Fehler", "Konnte Datenbank nicht öffnen!")
$_debug = FileWriteLine($FILE, $ANZDATEN)
$_debug += FileWriteLine($FILE, $SATZ)
If $_debug < 2 Then Exit MsgBox(0, "Fehler", "Konnte Datenbank nicht beschreiben!")
For $I = 1 To $ANZDATEN
For $TT = 0 To $ANZSTRUKTUR - 1
$_debug = FileWriteLine($FILE, $DATEN[$I][$TT])
If $_debug = 0 Then Exit MsgBox(0, "Fehler", "Konnte Datenbank nicht beschreiben!")
Next
Next
$_debug = FileClose($FILE)
If $_debug = 0 Then Exit MsgBox(0, "Fehler", "Konnte Datei nicht schließen!")
If $FTP = 0 Then MsgBox(64, "Datenbank speichern", "Datenbank gespeichert.", 0)
EndFunc
Func DB_SPEICHERN()
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$FILE = FileOpen($DATEI, 2)
If $FILE = -1 Then Exit MsgBox(0, "Fehler", "Konnte Datenbank nicht öffnen!")
$_debug = FileWriteLine($FILE, $ANZDATEN)
$_debug += FileWriteLine($FILE, $SATZ)
If $_debug < 2 Then Exit MsgBox(0, "Fehler", "Konnte Datenbank nicht beschreiben!")
For $I = 1 To $ANZDATEN
For $TT = 0 To $ANZSTRUKTUR - 1
$_debug = FileWriteLine($FILE, $DATEN[$I][$TT])
If $_debug = 0 Then Exit MsgBox(0, "Fehler", "Konnte Datenbank nicht beschreiben!")
Next
Next
$_debug = FileClose($FILE)
If $_debug = 0 Then Exit MsgBox(0, "Fehler", "Konnte Datei nicht schließen!")
EndFunc
Func KOPIEREN()
If $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$COPY[$I] = GUICtrlRead($EINGABE[$I])
Next
EndIf
EndFunc
Func EINFUEGEN()
If $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
GUICtrlSetData($EINGABE[$I], $COPY[$I])
Next
EndIf
EndFunc
Func SUFU()
If StringLen(GUICtrlRead($SUCHE)) > 0 And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$MERK = $DATENSATZ
$DATENSATZ = $DATENSATZ + 1
If $DATENSATZ > $ANZDATEN Then $DATENSATZ = 1
$FUND = 0
While $FUND = 0 And $DATENSATZ <> $MERK
For $I = 0 To $ANZSTRUKTUR
If StringInStr($DATEN[$DATENSATZ][$I], GUICtrlRead($SUCHE)) > 0 Then $FUND = $DATENSATZ
Next
$DATENSATZ = $DATENSATZ + 1
If $DATENSATZ > $ANZDATEN Then $DATENSATZ = 1
WEnd
If $FUND = 0 Then
MsgBox(64, "Suche", "Nichts gefunden.", 0)
Else
$DATENSATZ = $FUND
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
GUICtrlSetData($T[0], "Datensatz " & $DATENSATZ & " / " & $ANZDATEN)
If FileExists($GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx") = 1 Then
GUICtrlSetImage($GRAFIK, $GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx")
Else
GUICtrlSetImage($GRAFIK, $SCRIPTPATH & "data\common\nopic.tgx")
EndIf
EndIf
EndIf
EndFunc
Func LADENTRANSLATION()
$FILE = FileOpen("Translation.txt", 0)
$TEMP = FileReadLine($FILE)
While $TEMP <> ""
$ANZTRANSLATION = $ANZTRANSLATION + 1
$TEMP1 = StringLeft($TEMP, StringInStr($TEMP, ";") - 1)
$TEMP2 = StringReplace($TEMP, $TEMP1 & ";", "")
$TEMP = FileReadLine($FILE)
$ZZ = -1
While StringInStr($TEMP1, ",") > 0
$ZZ = $ZZ + 1
$TRANSLATE[$ANZTRANSLATION][0][$ZZ] = StringLeft($TEMP1, StringInStr($TEMP1, ",") - 1)
$TEMP1 = StringReplace($TEMP1, $TRANSLATE[$ANZTRANSLATION][0][$ZZ] & ",", "")
WEnd
$ZZ = $ZZ + 1
$TRANSLATE[$ANZTRANSLATION][0][$ZZ] = $TEMP1
$ZZ = -1
While StringInStr($TEMP2, ",") > 0
$ZZ = $ZZ + 1
$TRANSLATE[$ANZTRANSLATION][1][$ZZ] = StringLeft($TEMP2, StringInStr($TEMP2, ",") - 1)
$TEMP2 = StringReplace($TEMP2, $TRANSLATE[$ANZTRANSLATION][1][$ZZ] & ",", "")
WEnd
$ZZ = $ZZ + 1
$TRANSLATE[$ANZTRANSLATION][1][$ZZ] = $TEMP2
WEnd
FileClose($FILE)
EndFunc
Func FTPLOAD()
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$FTP = 1
DATENBANK_SPEICHERN()
$FTP = 0
$OPEN = _FTP_Open("MyFTP Control")
$CONN = _FTP_Connect($OPEN, $SERVER, $USERNAME, $PASSWORD)
$FTPP = _FTP_FilePut($CONN, $DATEI, "/httpdocs/QuickUpdates/" & StringRight($DATEI, StringLen($DATEI) - StringInStr($DATEI, "\", 0, -1)))
$FTPC = _FTP_Close($OPEN)
If $FTPP = 1 Then MsgBox(64, "FTP Upload", "Erfolgreich", 0)
If $FTPP = 0 Then MsgBox(16, "FTP Upload", "Fehlgeschlagen", 0)
EndFunc
Func SCREENSHOT()
SCREENSHOT_CAPTURE("35")
EndFunc
Func SCREENSHOT2()
SCREENSHOT_CAPTURE("30")
EndFunc
Func SCREENSHOT_CAPTURE($SIZE)
Local $POS = MouseGetPos()
Local $FILECAPTURE = $SCRIPTPATH & "Screenshots\graphic.jpg"
FileDelete($SCRIPTPATH & "Screenshots\graphic.jpg")
Local $BITMAP, $IMAGE, $HPEN
_GDIPLUS_STARTUP()
$BITMAP = _SCREENCAPTURE_CAPTURE("", $POS[0], $POS[1], $POS[0] + $SIZE, $POS[1] + $SIZE, 0)
$IMAGE = _GDIPLUS_BITMAPCREATEFROMHBITMAP($BITMAP)
$HPEN = _GDIPLUS_PENCREATE(-16777216)
_GDIPLUS_GRAPHICSDRAWRECT($IMAGE, 0, 0, $SIZE, $SIZE, $HPEN)
_GDIPLUS_IMAGESAVETOFILE($IMAGE, $FILECAPTURE)
_GDIPLUS_IMAGEDISPOSE($IMAGE)
_WINAPI_DELETEOBJECT($BITMAP)
_GDIPLUS_PENDISPOSE($HPEN)
WinActivate($MAINWINDOW)
GUICtrlSetImage($GRAFIK, $SCRIPTPATH & "Screenshots\graphic.jpg")
$CAPTURE = 1
EndFunc
Alles anzeigen
Die Data hat sagen wir ein Ober Menü welches mir sagt was ich für Daten einfügen soll.
Das Menü in der angehangenen Data hat jetzt 37 Zeilen.
Wie soll das Verschieben nun funktionieren?
Schritt eins:
Im Programm Menü gibt es unter Bearbeiten einen Menüpunkt Namens Zeile Verschieben. Wenn ich diesen betätige soll eine MsgBox mit eingabefenster aufgehen mich fragen (Welche Zeile möchtest du verschieben) mit der Angabe (in diesem Fall Zeile 1 - 37) und ich dann in dem Eingabefeld die Nummer der Zeile eingebe und mit OK bestätige.
Das heisst das die Funktion auch die Zeilenanzahl auslesen und in der MsgBox nach dem Text mit angeben muss. Siehe Bearbeiten - Ersetzen als Bsp.
Schritt zwei:
Nach Bestätigen des Schritt eins mittels OK, soll sich die MSGBox schließen und eine neue mit eingabefenster öffnen, in welcher dann steht (Mit welcher Zeile möchtest du tauschen) wieder mit der Angabe
(in diesem Fall Zeile 1 - 37) und ich dann in dem Eingabefeld die Nummer der Zeile eingebe mit welcher Zeile getauscht werden soll und mit OK bestätige.
Das heisst das die Funktion auch die Zeilenanzahl auslesen und in der MsgBox nach dem Text mit angeben muss. Siehe Bearbeiten - Ersetzen als Bsp.
Schritt Drei:
Nach bestätigen der zweiten MsgBox via OK soll sich nun der Zeilen Name samt seines Inhaltes (dieser Zeile) aller sich in der Data befindlichen Einträge auf die in Schritt eins festgelegte Position bewegen und der Zeilen Name samt Inhalt (dieser Zeile) aus Schritt 1 sich an die Stelle aus Schritt zwei verschieben, quasi ein Austausch der Namen samt Inhalt von einer zur anderen Stelle.
Das ähnliche Prinzip nur ohne verschieben könnt ihr zb. Unter Bearbeiten - Ersetzen ansehen. Einen Menüpunkt Habe ich bereits unter Bearbeiten mit dem Namen "Zeile Verschieben" eingefügt.
Um Sichtbar etwas zu sehen, würde ich vorschlagen Zeile 9 mit dem Namen Putzi (Text = Zeile Tauschen mit Verschieben) mit Zeile 16 mit Namen Einfach (Text=Verschieben) zum test zu verschieben.
Warum möchte ich das gern?
In dieser angehangenen Test Probe neu.data sind nur Zwei Einträge, aber im Schnitt handelt es sich um 100 und mehr Einträge, und die immer alle mit der Hand und zb. notepad++ zu bearbeiten ist ganz schön viel.
So, nun erstmal genug geschrieben. Ich hoffe ihr wisst wie ich das meine und ich verständlich geschrieben habe. Ich hoffe ihr könnt mir dabei Helfen.
Mit Freundlichen Grüßen Ghostleader