1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Ghostleader

Beiträge von Ghostleader

  • ListView nicht al­pha­be­tisch sondern über .data vorgegeben sortieren

    • Ghostleader
    • 23. Februar 2017 um 20:53

    Ok danke dir nochmal.

    Lg

  • ListView nicht al­pha­be­tisch sondern über .data vorgegeben sortieren

    • Ghostleader
    • 23. Februar 2017 um 20:02

    alpines du bist mein Held!!!

    Du hast recht, ich habe Tatsächlich dort noch ein _ARRAYSORT drin gehabt.


    Code
    $FILE = FileOpen($DATAPATH & "JobSachen.data", 0)
    	$ANZJOBSACHENUEBERSICHT = FileReadLine($FILE)
    	FileReadLine($FILE)
    	ReDim $JOBSACHENUEBERSICHT[$ANZJOBSACHENUEBERSICHT + 1][26], $CLICKJOBSACHENUEBERSICHT[$ANZJOBSACHENUEBERSICHT + 1][2]
    	For $I = 1 To $ANZJOBSACHENUEBERSICHT
    		For $Z = 0 To 25
    			$JOBSACHENUEBERSICHT[$I][$Z] = Stringstripws(FileReadLine($FILE),3)
    		Next
    	Next
    	FileClose($FILE)
    	_ARRAYSORT($JOBSACHENUEBERSICHT,0,1,$ANZJOBSACHENUEBERSICHT,0)
    Alles anzeigen

    Nach der Entfernung dessen, liest er nun ohne zu sortieren aus!
    Vielen Lieben Dank für die Geduld und Super Hilfe!

    Lg Ghostleader

  • ListView nicht al­pha­be­tisch sondern über .data vorgegeben sortieren

    • Ghostleader
    • 23. Februar 2017 um 17:15

    Wie man im Bild sieht, lädt er korrekt bei COL0 aus, jedoch sieht man auch das er bereits hier Sortiert von A > Z.

    http://www.bilder-upload.eu/show.php?file=…-1487866180.jpg

    Bsp Im Array liest er aus bei Entdecker:
    1. Abzeichen des Entdeckers
    2. Entdecker Lederkappe
    usw
    usw

    In der Datenbank ist die Anordnung so:
    1. Entdecker Lederkappe
    2. Entdecker-Lederkleidung
    usw
    usw

    So wie in der .data (also unsortiert) soll es eigentlich dargestellt werden. Klar könnte man jetzt mit 01 - 09 vor den Namen die Sortierung erzwingen, jedoch müsste man dann in der Data immer ne Separate Zeile einfügen wo der Name ohne die Zahlen steht, da man die auch zur Bilder anzeige Brauch und nun mal der Name des Bildes mit dem Namen des Teils in der .data verglichen wird.

    Lg

    Ps: Vom Prinzip erledigt der Code (wie man sieht beim auslesen) alles was er soll einwandfrei, bis auf die Sortierung eben die er ausgerechnet nicht machen soll^^

  • ListView nicht al­pha­be­tisch sondern über .data vorgegeben sortieren

    • Ghostleader
    • 23. Februar 2017 um 14:12

    ;(;(;(;(;(;(;(;(

    Welche ist denn die gemeinte Variable die ich dann noch einfügen soll bitte :(

  • ListView nicht al­pha­be­tisch sondern über .data vorgegeben sortieren

    • Ghostleader
    • 23. Februar 2017 um 12:49

    Danke BugFix für den Tipp.

    Also, viel bzw genaues zeigt mir die Console nicht an um sagen zu können ob es richtig ausgelesen wird oder nicht.

    9 Teile liest er aus und es wird mir so dargestellt in der Console.

    Text/$JOBSACHENUEBERSICHT
    Text/$JOBSACHENUEBERSICHT
    Text/$JOBSACHENUEBERSICHT
    Text/$JOBSACHENUEBERSICHT
    Text/$JOBSACHENUEBERSICHT
    Text/$JOBSACHENUEBERSICHT
    Text/$JOBSACHENUEBERSICHT
    Text/$JOBSACHENUEBERSICHT
    Text/$JOBSACHENUEBERSICHT

    Wobei ich mir nicht sicher bin, ob ich den Eintrag korrekt ergänzt habe.

    $CLICKJOBSACHENUEBERSICHT[$Z][0] = GUICtrlCreateListViewItem($JOBSACHENUEBERSICHT[$I][0] & "|" & $JOBSACHENUEBERSICHT[$I][3], $LISTVIEW)
    ConsoleWrite('Text/$JOBSACHENUEBERSICHT' & @CRLF)

    So hatte ich es ergänzt.

    Lg

  • ListView nicht al­pha­be­tisch sondern über .data vorgegeben sortieren

    • Ghostleader
    • 23. Februar 2017 um 11:59

    Hallo,

    habe mir jetzt noch mal die Listview in eine MsgBox ausgeben lassen aber da wie bei der Array Überprüfung das selbe.

    Wie ging das nochmal das ich mir die Items in die Console ausgeben lassen kann :Face:

    Lg

  • ListView nicht al­pha­be­tisch sondern über .data vorgegeben sortieren

    • Ghostleader
    • 22. Februar 2017 um 22:41
    Zitat von alpines

    Schmeiß mal eine Sortierfunktion nach der anderen raus und schau welche das bewirkt.

    Ich habe doch gar keine Sortierfunktion mehr drin oder soll ich mich so verschauen?

  • ListView nicht al­pha­be­tisch sondern über .data vorgegeben sortieren

    • Ghostleader
    • 22. Februar 2017 um 21:59

    Also wie bereits vermutet, das auslesen des Arrays ergab das alles korrekt ist.
    Ausgelesen wird richtig, jedoch von A nach Z Sortiert obwohl dies nicht gewünscht und angegeben ist. In der .data aus der ausgelesen wird, ist alles durcheinander und nicht nach A bis Z sortiert, so das dies tatsächlich vom Code übernommen wird, warum und vor allem wie auch immer, das macht echt ratlos ?(

  • ListView nicht al­pha­be­tisch sondern über .data vorgegeben sortieren

    • Ghostleader
    • 22. Februar 2017 um 16:36

    Ja bin mir sicher, denn sonst würde der rest in der FUNC so aussehen:

    Code
    Global $B_DESCENDING[_GUICTRLLISTVIEW_GETCOLUMNCOUNT($LISTVIEW)]
    _GUICTRLLISTVIEW_SETCOLUMNWIDTH($LISTVIEW, 0, 200)
    _GUICTRLLISTVIEW_SETCOLUMNWIDTH($LISTVIEW, 1, 90)
    _GUICtrlListView_SimpleSort($LISTVIEW, $B_DESCENDING, 1)
    $JOBSACHENUEBERSICHTWAHL = $Z

    Komme gerade nicht auf _ArrayDisplay klar, wie ich mir das einbinde um mir das Array auslesen bzw anzeigen zu lassen, schande auf mein Haupt 8|;(X/?(

  • ListView nicht al­pha­be­tisch sondern über .data vorgegeben sortieren

    • Ghostleader
    • 22. Februar 2017 um 16:05

    In den anderen FUNC benutze ich ja _GUICtrlListView_SimpleSort($LISTVIEW, $B_DESCENDING, 1) damit die Sortierung Alphabetisch absteigend von A - Z sortiert was j super klappt, aber wie man sieht auch ohne diesen Befehl tut er dies.
    Habe jetzt schon lang nichts mehr gemacht in AutoIt, daher auch meine blöde Frage, wie meinst du das ich soll mir mal das Array für $JOBSACHENUEBERSICHT angeben lassen? :/
    Er liest ja alles richtig aus aus der data, nur das er eben von A - Z sortiert und das verwundert mich eben, wie du schon sagst eigentlich sollte er das laut des Codes nicht tun.

    Lg

  • ListView nicht al­pha­be­tisch sondern über .data vorgegeben sortieren

    • Ghostleader
    • 22. Februar 2017 um 15:45

    Hallo alpines,

    hier mal der Teil wo die ListView erstellt und gefüttert wird ^^ hatte ich vergessen mit zu geben.

    Spoiler anzeigen
    Code
    Func JOBSACHENUEBERSICHT()
    	$Z = 0
    	If $M = 850 Then TITELLEISTE(TRANSLATION("Entdecker"), 1, 295)
    	If $M = 851 Then TITELLEISTE(TRANSLATION("König"), 1, 295)
    	If $M = 852 Then TITELLEISTE(TRANSLATION("Erlösung"), 1, 295)
    	IF $M = 853 THEN TITELLEISTE(TRANSLATION("Göttlich"),1,295)
    	If $M = 854 Then TITELLEISTE(TRANSLATION("Gefallen"), 1, 295)
    	If $M = 855 Then TITELLEISTE(TRANSLATION("Inquisitor"), 1, 295)
    	If $M = 856 Then TITELLEISTE(TRANSLATION("Boris"), 1, 295)
    	IF $M = 857 THEN TITELLEISTE(TRANSLATION("Primera"),1,295)
    	If $M = 858 Then TITELLEISTE(TRANSLATION("Thomas"), 1, 295)
    	If $M = 859 Then TITELLEISTE(TRANSLATION("Schmitz"), 1, 295)
    	If $M = 860 Then TITELLEISTE(TRANSLATION("Angelina"), 1, 295)
    	IF $M = 861 THEN TITELLEISTE(TRANSLATION("Davis"),1,295)
    	If $M = 862 Then TITELLEISTE(TRANSLATION("Harris"), 1, 295)
    	IF $M = 863 THEN TITELLEISTE(TRANSLATION("Farrell"),1,295)
    	$LISTVIEW = GUICtrlCreateListView(TRANSLATION("Name") & "                   |" & TRANSLATION("Berufsstufe") & "  ", 10, 50, 295, 220, $LVS_REPORT)
    	GUICtrlSendMsg($LISTVIEW, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
    	GUICtrlSendMsg($LISTVIEW, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
    	_GUICTRLLISTVIEW_SETCOLUMN($LISTVIEW, 0, TRANSLATION("Name"), -1, 2)
    	_GUICTRLLISTVIEW_SETCOLUMN($LISTVIEW, 3, TRANSLATION("Berufsstufe"), -1, 2)
    	$ZAHL = 0
    	For $I = 1 To $ANZJOBSACHENUEBERSICHT
    		IF ($JOBSACHENUEBERSICHT[$I][1] = "Entdecker" And $M = 850) OR ($JOBSACHENUEBERSICHT[$I][1] = "König" And $M = 851) OR ($JOBSACHENUEBERSICHT[$I][1] = "Erlösung" And $M = 852) OR ($JOBSACHENUEBERSICHT[$I][1]="Göttlich" AND $M = 853) OR ($JOBSACHENUEBERSICHT[$I][1] = "Gefallen" And $M = 854) OR ($JOBSACHENUEBERSICHT[$I][1] = "Inquisitor" And $M = 855) OR ($JOBSACHENUEBERSICHT[$I][1] = "Boris" And $M = 856) OR ($JOBSACHENUEBERSICHT[$I][1]="Primera" AND $M = 857) OR ($JOBSACHENUEBERSICHT[$I][1] = "Thomas" And $M = 858) OR ($JOBSACHENUEBERSICHT[$I][1] = "Schmitz" And $M = 859) OR ($JOBSACHENUEBERSICHT[$I][1] = "Angelina" And $M = 860) OR ($JOBSACHENUEBERSICHT[$I][1]="Davis" AND $M = 861) OR ($JOBSACHENUEBERSICHT[$I][1] = "Harris" And $M = 862) OR ($JOBSACHENUEBERSICHT[$I][1] = "Farrell" And $M = 863)  OR ($JOBSACHENUEBERSICHT[$I][1] <> "Entdecker" And $JOBSACHENUEBERSICHT[$I][1] <> "König" And $JOBSACHENUEBERSICHT[$I][1]<> "Erlösung" And $JOBSACHENUEBERSICHT[$I][1] <> "Göttlich" And $JOBSACHENUEBERSICHT[$I][1]<> "Gefallen" And $JOBSACHENUEBERSICHT[$I][1] <> "Inquisitor" And $JOBSACHENUEBERSICHT[$I][1]<> "Boris" And $JOBSACHENUEBERSICHT[$I][1] <> "Primera" And $JOBSACHENUEBERSICHT[$I][1]<> "Thomas" And $JOBSACHENUEBERSICHT[$I][1] <> "Schmitz" And $JOBSACHENUEBERSICHT[$I][1]<> "Angelina" And $JOBSACHENUEBERSICHT[$I][1] <> "Davis" And $JOBSACHENUEBERSICHT[$I][1]<> "Harris" And $JOBSACHENUEBERSICHT[$I][1] <> "Farrell") Then ; $JOBSACHENUEBERSICHT[$I][3] die [3] 
    			$Z = $Z + 1
    			$CLICKJOBSACHENUEBERSICHT[$Z][0] = GUICtrlCreateListViewItem($JOBSACHENUEBERSICHT[$I][0] & "|" & $JOBSACHENUEBERSICHT[$I][3], $LISTVIEW)
    			$CLICKJOBSACHENUEBERSICHT[$Z][1] = $I
    			If $JUMPAKTIV = 1 And $JOBSACHENUEBERSICHT[$I][0] = $SPRUNGOBJ Then $JUMPTEMP = $CLICKJOBSACHENUEBERSICHT[$Z][0]
    		EndIf
    	Next
    	$TEMP[39] = GUICtrlCreateLabel(" ", 10, 50, 295, 220)
    	GUICtrlSetState(-1, $GUI_DISABLE)
    	_GUICTRLLISTVIEW_SETCOLUMNWIDTH($LISTVIEW, 0, 200)
    	_GUICTRLLISTVIEW_SETCOLUMNWIDTH($LISTVIEW, 1, 90)
    	$JOBSACHENUEBERSICHTWAHL = $Z
    EndFunc
    Alles anzeigen

    Lg Ghostleader

  • ListView nicht al­pha­be­tisch sondern über .data vorgegeben sortieren

    • Ghostleader
    • 22. Februar 2017 um 15:37

    Hallo AutoIt`ler,

    wie in der Überschrift bereits geschrieben möchte ich gern meine ListView nicht al­pha­be­tisch sortieren lassen, sondern sie soll so sortieren wie sie die Daten aus der .data ausliest egal welche Reihenfolge Abz mäßig da nun ist.

    Gefunden habe ich dies bezüglich nichts, sondern eben nur wie man nach Alphabet und der Gleichen sortieren kann.

    Vielen Dank schon mal für Eure Hilfe.

    Lg Ghostleader

  • Zeilen inklusive Inhalt in einer .Data mit Programm tauschen.

    • Ghostleader
    • 19. Juni 2015 um 20:28

    Hallo nochmal,

    sorry für den doppelpost aber hat denn niemand lust oder zeit mir bei der erstellung zu helfen büdde ?

    Lg Ghostleader

  • Zeilen inklusive Inhalt in einer .Data mit Programm tauschen.

    • Ghostleader
    • 18. Juni 2015 um 15:56

    Hallo Andy,

    Ich gebe zu das diese Variante interessant klingt, zumal man da wenn ich dich richtig verstehe bevor man den letztendlichen Schritt aus führt, sogar das Ergebnis sieht und es gegebenenfalls, falls man die falsche Zeile erwischt hat nochmal korrigieren kann.
    Allerdings muss ich auch da sagen, das ich jetzt nicht so recht weis wie ich das machen kann das die markierten Zeilen auch dann angezeigt und nach Button klick getauscht werden, noch die tausch Funktion also das eigentliche vorgehen erstellen muss, aber die Idee finde ich super. Vielleicht kannst du mir dabei ja bitte behilflich sein, was echt super wäre.
    Liebe Grüße Ghostleader

  • Zeilen inklusive Inhalt in einer .Data mit Programm tauschen.

    • Ghostleader
    • 18. Juni 2015 um 12:43

    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
    AutoIt
    #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

    Dateien

    Test Probe neu.rar 349 Byte – 368 Downloads
  • Programm aus Programm starten funktioniert nicht ganz

    • Ghostleader
    • 28. Mai 2015 um 00:48

    Hallo zusammen,

    sorry fürs jetzt erst melden und danke für die Hilfe, hat 1a funktioniert!

    Mfg Ghostleader

  • Programm aus Programm starten funktioniert nicht ganz

    • Ghostleader
    • 24. Mai 2015 um 14:55

    Hallo zusammen.

    Ich möchte gerne ein Programm über einen bestimmten Menü Aufruf des Hauptprogrammes starten und wenn dies geschehen ist, das Hauptprogramm in der Task leiste minimieren, was auch funktioniert.

    Nun ist es so, das es mit einigen Programmen geht ( Das aufrufen), aber bei einem eben der Fehler kommt, das es wenn ich es über das Hauptprogramm aufrufe die Ini Dateien nicht lesen kann, wenn ich es jedoch
    ohne das Hauptprogramm starte, alles funktioniert.
    Die Ini Datein liegen in dem aufzurufendem Programm selber, weswegen ich auch nicht verstehe, warum es bei einzel Aufruf geht, jedoch über start des anderen Programmes auf einmal nicht.
    Aufgerufen bzw gestartet wird das Programm über folgenden Befehl im Hauptprogramm (der das Hauptprog auch minimiert was auch klappt:

    Spoiler anzeigen
    [autoit]

    Func HANDELSTOOL()
    $pid = Run($SCRIPTPATH & "Data\Tools\Handelstool Fensterversion\Handelstool.exe")
    GUISetState(@SW_MINIMIZE)
    Do
    Sleep(100)
    Until Not ProcessExists($pid)
    GUISetState(@SW_RESTORE)
    EndFunc

    [/autoit]


    Die Fehler die kommen sind:
    1.Could not open file data\ini\StaedteHandelstool.ini
    2.Could not open file data\ini\Waren.ini
    Wie gesagt, der weg zu den Ini Datein die das aufgerufene Programm braucht liegt in diesem selber und wird von diesem aufgerufen bei start. (Bei alleinigen Aufruf ohne Hauptprogramm geht das alles)
    Mit einem Anderen Programm geht es ohne Probleme, bei selbigen Function des Aufrufens über das Hauptprogramm.
    Das Programm um welches es geht liegt bei als rar Datei.

    Ich hoffe jemand weiss einen Rat.

    Mfg Ghostleader

    Dateien

    Handelstool Fensterversion.rar 1,99 MB – 384 Downloads
  • Zweite ListView in Funktion einbauen

    • Ghostleader
    • 5. September 2014 um 12:59

    Mir ist da gerade aufgefallen, das das so wie ich das vor hatte anhand der Datas nicht machbar ist, aber ich habe ne andere Idee, sofern das möglich ist.
    Und zwar würde ich mir einfach ne zweite Funk bauen die dann die andere Data ausliehst (kein Problem) und lass diese dann eben wenn Zeile [0] mit Zeile [6] der vorhandenen Funk gleich sind.

    Dachte mir das ca so, was aber noch net geht:

    Spoiler anzeigen
    [autoit]

    Func INSTANZEN()
    $TEMP[15] = GUICtrlCreateLabel(TRANSLATION("Instanzen"), 10, 20, 325, 20, $SS_CENTER)
    GUICtrlSetFont($TEMP[15], 12, 800)
    GUICtrlSetColor($TEMP[15], 3300)
    $LISTVIEW = GUICtrlCreateListView(TRANSLATION("Name") & " |" & TRANSLATION("Typ") & " ", 10, 45, 325, 450, $LVS_REPORT)
    GUICtrlSendMsg($LISTVIEW, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
    GUICtrlSendMsg($LISTVIEW, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
    _GUICTRLLISTVIEW_SETCOLUMN($LISTVIEW, 0, TRANSLATION("Name"), -1, 2)
    _GUICTRLLISTVIEW_SETCOLUMN($LISTVIEW, 1, TRANSLATION("Typ"), -1, 2)
    For $I = 1 To $ANZINSTANZEN
    $CLICKINSTANZEN[$I] = GUICtrlCreateListViewItem($INSTANZEN[$I][0] & "|" & $INSTANZEN[$I][3], $LISTVIEW)
    If $JUMPAKTIV = 1 And $INSTANZEN[$I][0] = $SPRUNGOBJ Then $JUMPTEMP = $CLICKINSTANZEN[$I]
    Next
    Global $B_DESCENDING[_GUICTRLLISTVIEW_GETCOLUMNCOUNT($LISTVIEW)]
    $TEMP[0] = GUICtrlCreateLabel(" ", 10, 45, 325, 449)
    GUICtrlSetState(-1, $GUI_DISABLE)
    _GUICTRLLISTVIEW_SETCOLUMNWIDTH($LISTVIEW, 0, 210)
    _GUICTRLLISTVIEW_SETCOLUMNWIDTH($LISTVIEW, 1, 110)
    _GUICtrlListView_SimpleSort($LISTVIEW, $B_DESCENDING, 1)
    $check1 = $INSTANZEN[$I][0] ;Liest Zeile 0 aus der Data aus
    $check2 = $INSTANZEN[$I][6] ; Liest Zeile 6 aus der Data aus
    If $check1 = $check2 Then
    TESTERLI() ; ist die andere Funktion die aufgerufen werden soll wenn gleich
    EndIf
    EndFunc

    [/autoit]


    Leider funktioniert das nicht denn es kommt folgender Fehler:

    [autoit]

    (9644) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    $check1 = $INSTANZEN[$I][0]
    $check1 = ^ ERROR
    ->12:58:13 AutoIt3.exe ended.rc:1
    >Exit code: 1 Time: 10.006

    [/autoit]

    Mfg Ghosty

  • Zweite ListView in Funktion einbauen

    • Ghostleader
    • 5. September 2014 um 11:09

    Also das was du gerade da aufgeführt hast, meinst du soll ich alles in die Funktion eingebaut werden verliere gerade etwas den Überblick glaube ich 8|

    Wenn ich jetzt aber beide Listview´s hide

    [autoit]

    $listview1 = Guictrlcreatelistview(....)
    $listview2 = Guictrlcreatelistview(....)
    Guictrlsetstate(-1, @SW_HIDE)

    [/autoit]


    Dann wird doch bei Menüauswahl die Standard Listview auch net angezeigt wenn ich mich net irre.
    Auch verstehe ich nicht ganz nach was du den vergleich machst nach:

    [autoit]

    $check1 = _GUICtrlListView_GetItemTextArray($LISTVIEW, 0)
    $check2 = _GUICtrlListView_GetItemTextArray($LISTVIEW, 6)

    [/autoit]

    ?

    Der gesammt code für alle Menüs besteht aus ca 75 solcher Funcs, aber das was ich möchte soll eben nur für die eine so geschehen!

    Bin gerade schwieriger Fall ich weiss sorry :wacko:

  • Zweite ListView in Funktion einbauen

    • Ghostleader
    • 5. September 2014 um 10:57

    Hallo Phil,

    wenn ich das jetzt richtig interpretiere, so machst du zwar gerade die Abfrage die ich brauche, aber diese entscheidet nur ob die bereits im Code vorhandene Listview erscheint oder nicht. Ich möchte ja aber diese hier schon vorhandene immer angezeigt haben, aber eine zweite öffnen lassen wenn die kriterien wie du es gerade gemacht hast erfüllt sind.
    Das heist es müsste eine Zweispaltige zweite Listview mit in diese Funktion, die aber eben dann nur bei Erfüllung der Kriterien auch angezeigt wird (Natürlich an anderer Position) neben der Standard Listview hier im Code.

    Mfg Ghostleader

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™