Beiträge von Ghostleader
-
-
alpines du bist mein Held!!!
Du hast recht, ich habe Tatsächlich dort noch ein _ARRAYSORT drin gehabt.
Code
Alles anzeigen$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)
Nach der Entfernung dessen, liest er nun ohne zu sortieren aus!
Vielen Lieben Dank für die Geduld und Super Hilfe!Lg Ghostleader
-
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
uswIn der Datenbank ist die Anordnung so:
1. Entdecker Lederkappe
2. Entdecker-Lederkleidung
usw
uswSo 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^^
-
-
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/$JOBSACHENUEBERSICHTWobei 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
-
-
-
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 -
Ja bin mir sicher, denn sonst würde der rest in der FUNC so aussehen:
CodeGlobal $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
-
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
-
Hallo alpines,
hier mal der Teil wo die ListView erstellt und gefüttert wird hatte ich vergessen mit zu geben.
Spoiler anzeigen
Code
Alles anzeigenFunc 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
Lg Ghostleader
-
Hallo AutoIt`ler,
wie in der Überschrift bereits geschrieben möchte ich gern meine ListView nicht alphabetisch 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
-
Hallo nochmal,
sorry für den doppelpost aber hat denn niemand lust oder zeit mir bei der erstellung zu helfen büdde ?
Lg Ghostleader
-
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 -
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
Alles 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
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
-
Hallo zusammen,
sorry fürs jetzt erst melden und danke für die Hilfe, hat 1a funktioniert!
Mfg Ghostleader
-
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()
[/autoit]
$pid = Run($SCRIPTPATH & "Data\Tools\Handelstool Fensterversion\Handelstool.exe")
GUISetState(@SW_MINIMIZE)
Do
Sleep(100)
Until Not ProcessExists($pid)
GUISetState(@SW_RESTORE)
EndFunc
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
-
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()
[/autoit]
$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:(9644) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
[/autoit]
$check1 = $INSTANZEN[$I][0]
$check1 = ^ ERROR
->12:58:13 AutoIt3.exe ended.rc:1
>Exit code: 1 Time: 10.006Mfg Ghosty
-
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
Wenn ich jetzt aber beide Listview´s hide
[autoit]$listview1 = Guictrlcreatelistview(....)
[/autoit]
$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:$check1 = _GUICtrlListView_GetItemTextArray($LISTVIEW, 0)
[/autoit]
$check2 = _GUICtrlListView_GetItemTextArray($LISTVIEW, 6)?
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:
-
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