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. Alina

Beiträge von Alina

  • Printfunktion

    • Alina
    • 18. Dezember 2013 um 01:08

    Habe es auf die wohl einfachste Weise gelöst.
    Nachdem die Datei erstellt ist mit
    ShellExecute("test.txt", "", @ScriptDir, "edit")
    Textdatei Ausgabe an Standartediter und dort brauch ich dann nur noch ganz normal Drucken. ;)
    Billig, aber eine Lösung !!!

  • Printfunktion

    • Alina
    • 18. Dezember 2013 um 00:33

    SgtIgram: negativ

    Raupi : FileClose ist jetzt nicht mehr auskommentiert, dennoch funktioniert es nicht.

  • Printfunktion

    • Alina
    • 18. Dezember 2013 um 00:16

    Hier der Code:

    Spoiler anzeigen
    [autoit]


    Func print()
    ;diese beiden Zeilen funktionieren, also Ausgabe in eine MsgBox
    $data_print = _GUICtrlListView_GetSelectedIndices($hListView)
    MsgBox(0, "Datensatz soll gedruckt werden", "Autor: " & _GUICtrlListView_GetItemText($hListView, Abs($data_print)) & @CRLF & "Autor: " & _GUICtrlListView_GetItemText($hListView, Abs($data_print), 1) & @CRLF & "ISBN: " & _GUICtrlListView_GetItemText($hListView, Abs($data_print), 7))

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Textdatei erstellen,funktioniert auch
    Local $file = FileOpen("test.txt", 1)
    ; Prüfen, ob Datei im Schreibmodus geöffnet ist
    If $file = -1 Then
    MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
    Exit
    EndIf
    FileWrite($file, _GUICtrlListView_GetItemText($hListView, Abs($data_print)) & @CRLF)
    FileWrite($file, _GUICtrlListView_GetItemText($hListView, Abs($data_print), 1) & @CRLF)
    FileWrite($file, _GUICtrlListView_GetItemText($hListView, Abs($data_print), 7))
    FileClose($file)

    [/autoit] [autoit][/autoit] [autoit]

    ; Textdatei aus drucken
    Local $file = FileOpenDialog("zu druckende Datei ", " ", "Textdokumente (*.txt) ", 1)
    If @error Then Exit

    [/autoit] [autoit][/autoit] [autoit]

    Local $print = _FilePrint($file)
    If $print Then
    MsgBox(0, "Drucken ", "Die Datei wurde gedruckt. ")
    Else
    MsgBox(0, "Drucken ", "Fehler: " & @error & @CRLF & "Die Datei wurde nicht gedruckt. ")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>print

    [/autoit]

    1.)
    Daten können in eine MSgBox ausgegeben werden: ja einwandfrei.

    2.)
    Textdatei kann erstellt werden: ja, einwandfrei.

    3.)
    Textdatei kann ausgedruckt werden: NEIN es komtm folgende Fehlermeldung:
    Fehler 10
    Die Datei wurde nicht gedruckt


    ABER WIESO und wie bekomme ich die Datei ausgedruckt??? :cursing::cursing::cursing:

    Das kann ja eine lange Nacht werden und dann morgen früh übermüdet.

  • Nutzt ihr die Deutsche Hilfe von AutoIt?

    • Alina
    • 16. Dezember 2013 um 02:52

    Ich nutze beide Hilfen und wie bereits gesagt, hilft es auch, die Funktionen zu lernen bzw. zu wissen, das es diese gibt.

  • Inputbox stottert

    • Alina
    • 14. Dezember 2013 um 11:36

    Habe damit auch kein Problem und kann es auch auf anderen PC's nicht nachvollziehen !

  • Awesome Teamspeak service

    • Alina
    • 10. Dezember 2013 um 20:08

    Gute Idee, auch wenn ich es nicht nutzen werde. Hoffe die User/innen werden es DIR danken !!!

  • Happy Birthday Pee und funkey

    • Alina
    • 4. Dezember 2013 um 23:39

    Noch schnell mal ein Happy-Day sendet.
    Ein gesundes Lebensjahr und feier schööööön.
    :party::party::party::party::party::party::party::party::party:

  • kurze frage :)

    • Alina
    • 3. Dezember 2013 um 08:58

    So bekommst Du eine "Zufallszahl":

    Spoiler anzeigen
    [autoit]


    MsgBox(0, "zwischen zwei zahlen.", "Die Zahl liegt zwischen 0 und 9: " & Random(0, 9, 1))

    [/autoit]
  • Löffelsprache Übersetzer

    • Alina
    • 3. Dezember 2013 um 08:43

    ilewich kelewennelewe nulewur dielewie Lölewöffelewelchelewenstelewellulewung. ;)

  • X-Mas

    • Alina
    • 3. Dezember 2013 um 08:39

    Eine wunderschöne Vorweihnachtszeit, am Freitag "Glædelig sjette december." und am 24.12. laßt Julemand rein, damit er die Geschenke bringt. So ihr artig wart. ;)

  • Per Rechtsklickmenü AU3-Datei erstellen

    • Alina
    • 29. November 2013 um 10:02

    moin moin.

    ich möchte an dieser stelle erwähnen, das nur erfahrene user/innen an der registry-datei was machen sollten, da eine fehlerhafte anwendung zum systemabsturtz führen kann.
    am besten die registry-datei zuvor sichern und zwar auf einem externen datenträger, da es nichts bringt, wenn man die sicherheitskopie auf dem selben datenträger hat.

  • Happy Burtstag Der_Doc und BugFix

    • Alina
    • 28. November 2013 um 15:38

    !!! Euch beiden von Herzen alles GUte und ein weiteres gesundes Lebensjahr !!!
    Geb.-Song for BugFix and Der_Doc ! ;)

  • Happy Birthday Raupi

    • Alina
    • 27. November 2013 um 01:59

    Alles Liebe und Gute zum Purzeltag.
    :party: schön und have fun !!!

  • Listview-Datenbank-Beispiel

    • Alina
    • 26. November 2013 um 16:45

    Ja, ich weiß, das der letzte Beitrag länger als 1580 Tage zurück liegt. ;)

    Ich habe folgendes, von Oscar geschriebenes Script gerade am testen.

    Mir sind folgende Punkte aufgefallen, wobei ich nur den ersten und letzten Punkt nicht gelöst bekomme.

    1.) sortieren nach Einscheinungsdatum: sortiert die Datumsangaben nicht in Folge, sondern z. B. den 17.03.2004 vor den 21.02.2014

    2.) Spalte "Anzahl der Bücher" muss ausgeblendet werden. (Lsg.: Zeile 50)

    3.) bei Laden werden derzeitig nicht erst das angezeigt gelöscht, sondern die gespecherten Daten drangehäng (Lsg.: Zeile 144)

    4.) habe in Zeile 31 "_GUICtrlListView_SetColumn($hLVHandle, 5, "???", 10, 0) ; 6. Spalte = 10 Px breit, links ausgerichtet" hinzugefügt,
    wo muss noch etwas erweitert werden?


    Spoiler anzeigen
    [autoit]


    ; https://autoit.de/index.php?page…tview-Datenbank

    [/autoit] [autoit][/autoit] [autoit]

    ; sortieren nach Einscheinungsdatum: sortiert die Datumsangaben nicht in Folge, sondern z. B. den 17.03.2004 vor den 21.02.2014

    [/autoit] [autoit][/autoit] [autoit]

    ; Spalte "Anzahl der Bücher" muss ausgeblendet werden. (Lsg.: Zeile 52)

    [/autoit] [autoit][/autoit] [autoit]

    ; bei Laden werden derzeitig nicht erst das angezeigt gelöscht, sondern die gespecherten Daten drangehäng (Lsg.: Zeile 146)

    [/autoit] [autoit][/autoit] [autoit]

    ; habe in Zeile 31 "_GUICtrlListView_SetColumn($hLVHandle, 5, "???", 10, 0) ; 6. Spalte = 10 Px breit, links ausgerichtet" hinzugefügt,
    ; wo muss noch etwas erweitert werden?

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include<WindowsConstants.au3>
    #include<ListViewConstants.au3>
    #include<ButtonConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<Guilistview.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $sHeader = "Anzahl der Bücher|Buchtitel|Autor|Verlag|Erscheinungsdatum" ; Die Überschriften für das Listview und für das "Neuer Eintrag"-Fenster
    Global $sDBFile = @ScriptDir & "\buch_db2.csv" ; Pfad und Name der Datenbank-Datei
    Global $iEdit = -1 ; Wert auf -1 setzen, weil _GUICtrlListView_GetSelectionMark() einen Nullbasierten Wert liefert

    [/autoit] [autoit][/autoit] [autoit]

    #Region Hauptfenster
    Global $hGui = GUICreate("Listview-Datenbank-Beispiel", 800, 480) ; Hauptfenster erstellen
    Global $hListView = GUICtrlCreateListView($sHeader, 0, 0, 800, 420, $LVS_SHOWSELALWAYS) ; Listview erstellen

    [/autoit] [autoit][/autoit] [autoit]

    Global $hLVHandle = GUICtrlGetHandle($hListView) ; das Handle vom Listview wird für die UDF-Listview-Funktionen benötigt
    _GUICtrlListView_SetColumn($hLVHandle, 0, "", 1, 1) ; 1. Spalte = 120 Px breit, rechts ausgerichtet; hier versteckt da es nicht sichtbar sein soll
    _GUICtrlListView_SetColumn($hLVHandle, 1, "Buchtitel", 60, 0) ; 2. Spalte = 60 Px breit, links ausgerichtet
    _GUICtrlListView_SetColumn($hLVHandle, 2, "Autor", 90, 0) ; 3. Spalte = 90 Px breit, links ausgerichtet
    _GUICtrlListView_SetColumn($hLVHandle, 3, "Verlag", 100, 0) ; 4. Spalte = 100 Px breit, links ausgerichtet
    _GUICtrlListView_SetColumn($hLVHandle, 4, "Erscheinungsdatum", 120, 0) ; 5. Spalte = 120 Px breit, links ausgerichtet
    _GUICtrlListView_SetColumn($hLVHandle, 5, "???", 10, 0) ; 6. Spalte = 10 Px breit, links ausgerichtet

    [/autoit] [autoit][/autoit] [autoit]

    Global $hNew = GUICtrlCreateButton("Neuer Eintrag", 5, 430, 80, 35, $BS_DEFPUSHBUTTON) ; Dieser Button ist der Default-Push-Button (wenn der User [Enter] drückt)
    Global $hEdit = GUICtrlCreateButton("Markierten Eintrag bearbeiten", 95, 430, 110, 35, $BS_MULTILINE) ; $BS_Multiline für mehrzeiligen Button
    Global $hLoad = GUICtrlCreateButton("Laden", 230, 430, 70, 35)
    Global $hSave = GUICtrlCreateButton("Speichern", 310, 430, 70, 35)
    Global $hDel = GUICtrlCreateButton("Markierte Einträge löschen", 400, 430, 90, 35, $BS_MULTILINE)
    Global $hDelAll = GUICtrlCreateButton("Alle Einträge löschen", 500, 430, 90, 35, $BS_MULTILINE)

    [/autoit] [autoit][/autoit] [autoit]

    Global $hCM = GUICtrlCreateContextMenu($hListView) ; ein Kontextmenü für das Listview erstellen
    Global $hCMNew = GUICtrlCreateMenuItem("Neuer Eintrag", $hCM) ; der 1. Kontextmenüeintrag
    Global $hCMEdit = GUICtrlCreateMenuItem("Eintrag bearbeiten", $hCM) ; der 2. Kontextmenüeintrag
    Global $hCMDel = GUICtrlCreateMenuItem("Markierte Einträge löschen", $hCM) ; der 3. Kontextmenüeintrag
    #EndRegion Hauptfenster

    [/autoit] [autoit][/autoit] [autoit]

    #Region Fenster für neuen Eintrag
    Global $hGuiNew = GUICreate("Neuer Eintrag", 632, 140, -1, -1, $WS_SYSMENU) ; das Fenster "Neuer Eintrag" erstellen
    Global $aHeader = StringSplit($sHeader, '|') ; Überschriften-Array
    Global $aNew[$aHeader[0]] ; Array für die Input-IDs
    For $i = 2 To $aHeader[0] ; durch "$i = 2" wird die Buchanzahl nicht angezeigt
    GUICtrlCreateLabel($aHeader[$i], 4 + ($i - 1) * 125, 15, 110, 20) ; Überschriften-Label erstellen
    GUICtrlSetFont(-1, 8, 400, 0, 'Verdana') ; Schriftgröße und -art der Überschriften festlegen
    $aNew[$i - 1] = GUICtrlCreateInput("", 2 + ($i - 1) * 125, 30, 120, 20, Default, $WS_EX_STATICEDGE) ; Eingabefelder erstellen
    GUICtrlSetFont(-1, 10, 600, 0, 'Verdana') ; Schriftgröße und -art der Eingabefelder festlegen
    Next
    Global $hCreate = GUICtrlCreateButton("Eintrag speichern", 254, 65, 120, 25, $BS_DEFPUSHBUTTON) ; Button zum speichern
    #EndRegion Fenster für neuen Eintrag

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlListView_RegisterSortCallBack($hLVHandle) ; damit man das Listview (mit Klick auf die Spaltenüberschrift) sortieren kann

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $hGui) ; Hauptfenster sichtbar machen

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($sDBFile) Then Load() ; wenn Datenbank-Datei existiert, dann Datenbank laden

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg(1) ; Message-Event holen (1) = erweiterter Modus
    Switch $nMsg[0] ; anhand der Control-ID das entsprechende Case aufrufen
    Case $hListView ; User hat auf eine Spaltenüberschrift geklickt
    _GUICtrlListView_SortItems($hLVHandle, GUICtrlGetState($hListView)) ; Einträge entsprechend sortieren
    Case $hNew, $hCMNew ; User hat auf "Neuer Eintrag" geklickt
    WinSetTitle($hGuiNew, "", "Neuer Eintrag") ; den Titel des Fenster anpassen
    GUISetState(@SW_SHOW, $hGuiNew) ; das Fenster "Neuer Eintrag" anzeigen
    GUISetState(@SW_DISABLE, $hGui) ; das Hauptfenster deaktivieren
    Case $hEdit, $hCMEdit ; User hat auf "Eintrag bearbeiten" geklickt
    WinSetTitle($hGuiNew, "", "Eintrag bearbeiten") ; den Titel des Fenster anpassen
    GUISetState(@SW_SHOW, $hGuiNew) ; das Fenster "Neuer Eintrag" anzeigen
    GUISetState(@SW_DISABLE, $hGui) ; das Hauptfenster deaktivieren
    Edit()
    Case $hLoad ; User hat auf "Laden" geklickt
    Load()
    Case $hSave ; User hat auf "Laden" geklickt
    Save()
    Case $hDel, $hCMDel ; User hat auf "Markierte Einträge löschen" geklickt
    If MsgBox(256 + 32 + 4, "Einträge löschen", "Wollen sie die markierten Einträge wirklich löschen?") = 6 Then _GUICtrlListView_DeleteItemsSelected($hLVHandle)
    Case $hDelAll ; User hat auf "Alle Einträge löschen" geklickt
    If MsgBox(256 + 32 + 4, "Einträge löschen", "Wollen sie wirklich alle Einträge löschen?") = 6 Then _GUICtrlListView_DeleteAllItems($hLVHandle)
    Case $hCreate ; User hat auf "Eintrag speichern" im Fenster "Neuer Eintrag" geklickt
    NewItem()
    Case $GUI_EVENT_CLOSE ; User hat auf das Schließen-Symbol geklickt (bzw. die ESC-Taste gedrückt)
    Switch $nMsg[1] ; erweiterte Abfrage für welches Fenster
    Case $hGui ; User will das Hauptfenster schließen
    If MsgBox(32 + 4, "Beenden", "Wollen sie das Programm wirklich beenden?") = 6 Then End() ; wenn ja, dann End-Funktion aufrufen
    Case $hGuiNew ; User will das "Neuer Eintrag"-Fenster schließen
    $iEdit = -1
    For $i = 0 To UBound($aNew) - 1
    GUICtrlSetData($aNew[$i], "") ; Alle Eingabefelder leeren
    Next
    GUISetState(@SW_HIDE, $hGuiNew) ; "Neuer Eintrag"-Fenster verstecken
    GUISetState(@SW_ENABLE, $hGui) ; Hauptfenster wieder aktivieren
    WinActivate($hGui) ; und in den Vordergrund holen
    EndSwitch
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func End()
    ;~ Save() ; wenn der vordere Kommentar entfernt wird, dann werden vor dem beenden noch die Daten gespeichert
    _GUICtrlListView_UnRegisterSortCallBack($hLVHandle) ; Sortierroutine wieder de-registrieren
    Exit ; Programm beenden
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func NewItem() ; Funktion zum auslesen der Eingabefelder (Neuer Eintrag bzw. Eintrag bearbeiten)
    Local $sItem = ""
    For $i = 0 To UBound($aNew) - 1 ; Schleife, um alle Eingabefelder durchzugehen
    If $iEdit > -1 Then ; wenn $iEdit > -1 (Eintrag bearbeiten), dann...
    _GUICtrlListView_SetItemText($hLVHandle, $iEdit, GUICtrlRead($aNew[$i]), $i) ; den Eintrag aus dem Eingabefeld ins Listview schreiben
    Else ; sonst $iEdit = -1 (neuer Eintrag)
    $sItem &= GUICtrlRead($aNew[$i]) & "|" ; den Eintrag aus dem Eingabefeld erstmal in einer Variablen ($sItem) speichern
    EndIf
    GUICtrlSetData($aNew[$i], "") ; das entsprechende Eingabefeld leeren
    Next
    If $iEdit > -1 Then ; wenn $iEdit > -1 (Eintrag bearbeiten), dann...
    $iEdit = -1
    GUISetState(@SW_HIDE, $hGuiNew) ; "Neuer Eintrag"-Fenster verstecken
    GUISetState(@SW_ENABLE, $hGui) ; Hauptfenster wieder aktivieren
    Sleep(300)
    WinActivate($hGui) ; und in den Vordergrund holen
    Else ; sonst $iEdit = -1 (neuer Eintrag)
    GUICtrlSetState($aNew[0], $GUI_FOCUS) ; den Focus wieder auf das erste Eingabefeld setzen, für weitere Eingaben
    GUICtrlCreateListViewItem(StringTrimRight($sItem, 1), $hListView) ; mit den Werten aus $sItem einen neuen Listview-Eintrag hinzufügen
    EndIf
    EndFunc ;==>NewItem

    [/autoit] [autoit][/autoit] [autoit]

    Func Edit() ; Funktion zum bearbeiten eines Listview-Eintrags im "Eintrag bearbeiten"-Fenster
    $iEdit = _GUICtrlListView_GetSelectionMark($hLVHandle) ; auslesen, welcher Listview-Eintrag markiert (bei mehreren, den obersten) ist
    If $iEdit > -1 Then
    Local $aItem = _GUICtrlListView_GetItemTextArray($hLVHandle, $iEdit) ; die Einträge aus dem Listview in ein Array holen
    For $i = 1 To $aItem[0]
    GUICtrlSetData($aNew[$i - 1], $aItem[$i]) ; und in die entsprechenden Eingabefelder schreiben
    Next
    EndIf
    EndFunc ;==>Edit

    [/autoit] [autoit][/autoit] [autoit]

    Func Load() ; Datenbank-Datei laden
    _GUICtrlListView_DeleteAllItems($hLVHandle) ; Somit werden die Daten nicht mehr nur an den bestehenden angezeigten Daten drangehängt
    ; erst mal löschen und dann neu laden
    Local $sItem
    Local $hFile = FileOpen($sDBFile, 0) ; Datei zum lesen öffnen
    If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    _GUICtrlListView_BeginUpdate($hLVHandle) ; Listview sperren
    While True ; Endlosschleife
    $sItem = FileReadLine($hFile) ; Zeile aus der Datei lesen
    If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen
    GUICtrlCreateListViewItem($sItem, $hListView) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($hLVHandle) ; Listview wieder freigeben
    FileClose($hFile) ; Datei schließen
    EndIf
    EndFunc ;==>Load

    [/autoit] [autoit][/autoit] [autoit]

    Func Save() ; Datenbank-Datei speichern
    Local $sItem
    Local $iCount = _GUICtrlListView_GetItemCount($hLVHandle) - 1 ; Anzahl der Listview-Einträge holen
    Local $hFile = FileOpen($sDBFile, 2) ; Datei zum speichern (überschreiben) öffnen
    If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    For $i = 0 To $iCount ; Schleife, um alle Listview-Einträge durchzugehen
    $sItem = _GUICtrlListView_GetItemTextString($hLVHandle, $i) ; die Werte aus dem Listview-Eintrag holen
    FileWriteLine($hFile, $sItem) ; und in die Datei schreiben
    Next
    FileClose($hFile) ; Datei schließen
    EndIf
    EndFunc ;==>Save

    [/autoit]


    buch_db2.csv:

    Spoiler anzeigen
    [autoit]


    0|b1|a1|v1|01.01.2014|0
    0|b3|a3|v3|15.06.2014|0
    0|b4|a4|v4|17.05.2014|0
    0|b2|a2|v2|31.12.2014|0

    [/autoit]

    Wie o. g. Propleme lösen?

  • Buchmanagment

    • Alina
    • 25. November 2013 um 12:46

    SO !!!
    Nichts SQL, PHP, HTML, usw. es bleibt wie es ist!

    Ich möchte dieses Projekt jetzt so weiter machen, wie es angefangen hat. ;)
    Nennt es: Frau ebend !

    Access ist was feines und ich bekomme da auch viel mit hin, aber ich möchte
    es hier nicht einsetzen. Ich bin u. a. in diesem Forum, um auch zu lernen. ;)
    Durch die Hilfe die ich hier bekomme, lerne ich nämlich viel, da ich versuche
    zum Beispiel auch die Scripte die ihr postet zu verstehen. Das ist aber nicht
    immer leicht, wenn man im Bezug auf Programmieren/Scripten vor AutoIt
    nur die gute alte Batch-Dateien (*.bat) im cmd angewendet hat.
    Das Script von Andy (Posting 15) kostete mich schon so einige Nerven, was das
    Verstehen betrifft. Aber ich habe schon mal zu 80% bis 90% den Durchblick.

    Was soll ich jetzt noch schreiben? Nichts, ich gehe einen Tee trinken und dann
    die Zeitung lesen. Sportteil als estes, denn gestern war bei uns in der Arena die
    Hölle los. Nordderbby der 1. Handballbundesliga brachte fast die Halle zum einstürzen !!!

    Bis später. *winkt*

  • Buchmanagment

    • Alina
    • 25. November 2013 um 03:21

    Hallo Andy.

    Ersteinmal Danke für geschriebenes. ;) An Alle versteht sich.

    Habe mir die letzten Stunden Dein Script durchgeschaut und schon mal eine Sache mehr zugefüght.

    Jetzt kann man Datensätze bearbeiten.
    Ich siehe der DB, den zu bearbeitenden Datensatz "unterm Hintern weg" und schreibe ihn neu.
    Siehe Zeile 136 bis 142

    WICHTIG !!!
    zum ändern zu dem Buch gehen was man bearbeiten möchte, die Bearbeitung durchführen und dann den Button drücken "aktuelles Buch bearbeiten".

    Gibt sicherlich eine bessere Lösung und ich bin allem gegenüber offen.

    Derzeitig sieht es so aus:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <File.au3>

    [/autoit] [autoit][/autoit] [autoit]

    dim $input[30] ;maximale Anzahl Felder, das sollte reichen^^
    dim $label[30] ;sollten so viele wie input sein
    dim $Checkbox[10] ;anzahl checkboxen

    [/autoit] [autoit][/autoit] [autoit]

    global $Dateiname = "buch_db.csv"
    global $inhalt ;Dateiinhalt von $Dateiname
    global $zeile ;Zeileninhalt (Array)
    global $Buchnummer ; na was wohl, die angezeigte.....Buchnummer^^

    [/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate("Bookmanagment", 743, 588, 192, 124) ;Gui

    [/autoit] [autoit][/autoit] [autoit]

    ;inputs
    $input[0] = GUICtrlCreateInput("", 1, 1, 1, 1) ;Datenbank ?! ^^
    $input[1] = GUICtrlCreateInput("", 136, 145, 601, 28) ;Buchtitel
    $input[2] = GUICtrlCreateInput("", 136, 176, 601, 28) ;Autor
    $input[3] = GUICtrlCreateInput("", 136, 208, 601, 28) ;Verlag
    $input[4] = GUICtrlCreateInput("", 136, 240, 80, 28) ;Erscheinungsdatum
    $input[5] = GUICtrlCreateInput("", 466, 239, 57, 28) ;Preis
    $input[6] = GUICtrlCreateInput("", 136, 272, 113, 28) ;ISBN10
    $input[7] = GUICtrlCreateInput("", 320, 272, 113, 28) ;ISBN13
    $input[8] = GUICtrlCreateInput("", 629, 239, 108, 28) ;Einband
    $input[9] = GUICtrlCreateInput("", 525, 272, 105, 28) ;Seiten
    $input[10] = GUICtrlCreateInput("", 136, 304, 297, 21) ;verliehen an
    $input[11] = GUICtrlCreateInput("", 522, 302, 78, 28) ;verliehen am
    $input[12] = GUICtrlCreateInput("", 661, 302, 75, 28) ;verliehen bis
    $input[13] = GUICtrlCreateInput("", 136, 328, 297, 21) ;Lagerplatz
    $input[14] = GUICtrlCreateInput("", 200, 352, 537, 21) ;Schlagwörter
    $input[15] = GUICtrlCreateInput("", 200, 376, 537, 28) ;Info1
    $input[16] = GUICtrlCreateInput("", 200, 408, 537, 28) ;Info2
    $input[17] = GUICtrlCreateInput("", 200, 440, 537, 21) ;Kaufmöglichkeit
    $input[19] = GUICtrlCreateInput("", 200, 464, 49, 21) ;gelesen
    $input[20] = GUICtrlCreateInput("", 304, 464, 17, 28) ;sterne

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;labels
    $label[0] = GUICtrlCreateLabel("Anzahl Bücher :", 5, 15, 150, 24)
    $label[1] = GUICtrlCreateLabel("Buchtitel :", 5, 147, 62, 24)
    $label[2] = GUICtrlCreateLabel("Buchautor :", 5, 178, 71, 24)
    $label[3] = GUICtrlCreateLabel("Verlag :", 5, 210, 51, 24)
    $label[4] = GUICtrlCreateLabel("Erscheinungsdatum :", 5, 242, 129, 24)
    $label[5] = GUICtrlCreateLabel("Preis in € :", 399, 242, 68, 24)
    $label[6] = GUICtrlCreateLabel("ISBN-10 :", 5, 277, 60, 24)
    $label[8] = GUICtrlCreateLabel("ISBN-13 :", 258, 274, 60, 24)
    $label[7] = GUICtrlCreateLabel("Einband :", 569, 242, 61, 24)
    $label[9] = GUICtrlCreateLabel("Seiten :", 464, 272, 50, 24)
    $label[10] = GUICtrlCreateLabel("ausgeliehen an :", 5, 306, 103, 24)
    $label[11] = GUICtrlCreateLabel("am :", 464, 304, 30, 24)
    $label[12] = GUICtrlCreateLabel("bis :", 629, 305, 30, 24)
    $label[13] = GUICtrlCreateLabel("Lagerplatz", 5, 329, 66, 24)
    $label[14] = GUICtrlCreateLabel("Schlagwörter :", 5, 352, 89, 24)
    $label[15] = GUICtrlCreateLabel("Information - 1 :", 5, 380, 95, 24)
    $label[16] = GUICtrlCreateLabel("Information - 2 :", 5, 408, 95, 24)
    $label[17] = GUICtrlCreateLabel("Kaufmöglichkeit :", 5, 440, 106, 24)
    $label[18] = GUICtrlCreateLabel("B U C H V E R W A L T U N G ", 264, 8, 267, 27)
    $label[19] = GUICtrlCreateLabel("gelesen ?", 5, 464, 64, 24)
    $label[20] = GUICtrlCreateLabel("von 5 Sternen", 322, 466, 87, 24)
    $label[21] = GUICtrlCreateLabel("vormerken", 240, 242, 68, 24)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;alle schriftarten setzen für inputs und label
    for $i = 0 to UBound($input) - 1 ;inputs und/oder labels
    GUICtrlSetFont($input[$i], 12, 400, 0, "Arial Narrow")
    GUICtrlSetFont($label[$i], 12, 400, 0, "Arial Narrow")
    next

    [/autoit] [autoit][/autoit] [autoit]

    $Checkbox[0] = GUICtrlCreateCheckbox("", 220, 245, 17, 17)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetColor(-1, 0xFF0000)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Button1 = GUICtrlCreateButton("Buch suchen", 8, 48, 123, 25)
    $Button2 = GUICtrlCreateButton("Neues Buch erfassen", 440, 48, 115, 25)
    GUICtrlSetBkColor(-1, 0x00FF00)
    $Button3 = GUICtrlCreateButton("Sortieren nach Autor", 8, 80, 123, 25)
    $Button4 = GUICtrlCreateButton("aktuelles Buch bearbeiten", 256, 48, 179, 25)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $Button5 = GUICtrlCreateButton("Sortieren nach Titel", 136, 80, 115, 25)
    $Button6 = GUICtrlCreateButton("sortieren nach Erscheinungsdatum", 256, 80, 179, 25)
    $Button7 = GUICtrlCreateButton("Speichern", 608, 112, 107, 25)
    GUICtrlSetBkColor(-1, 0x00FF00)
    $Button8 = GUICtrlCreateButton("vorgemerkte Bücher", 440, 80, 115, 25)
    $Button9 = GUICtrlCreateButton("Schlagwortsuche", 136, 48, 115, 25)
    $Button10 = GUICtrlCreateButton("aktuelle Buch drucken", 280, 496, 195, 25)
    $Button11 = GUICtrlCreateButton("Erste Buch", 5, 496, 101, 25)
    GUICtrlSetBkColor(-1, 0x00FF00)
    $Button12 = GUICtrlCreateButton("vorheriger Buch", 128, 496, 113, 25)
    GUICtrlSetBkColor(-1, 0x00FF00)
    $Button13 = GUICtrlCreateButton("nächster Buch", 504, 496, 113, 25)
    GUICtrlSetBkColor(-1, 0x00FF00)
    $Button14 = GUICtrlCreateButton("Letztes Buch", 640, 496, 99, 25)
    GUICtrlSetBkColor(-1, 0x00FF00)
    $Button15 = GUICtrlCreateButton("Liste alle Bücher ausgeben", 560, 48, 179, 25)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    _Einlesen_Datei() ;liest die Daten-Datei ein

    [/autoit] [autoit][/autoit] [autoit]

    ;wenn mit einem leeren Datensatz gestartet werden soll, die nächsten 2 Zeilen auskommentieren
    $Buchnummer = 1 ;erstes Buch anzeigen
    _Anzeige_Datensatz_nr($Buchnummer) ;erstes Buch anzeigen

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button7 ;speichern
    _Speichern_in_Datei()
    case $Button2 ;Neues Buch
    _Anzeige_leeren() ;leerer Datensatz
    case $Button11 ;erstes Buch
    $Buchnummer = 1
    _Anzeige_Datensatz_nr($Buchnummer)
    case $Button12 ;vorheriges Buch
    $Buchnummer = $Buchnummer - 1
    _Anzeige_Datensatz_nr($Buchnummer)
    case $Button13 ;nächstes Buch
    $Buchnummer = $Buchnummer + 1
    _Anzeige_Datensatz_nr($Buchnummer)
    case $Button14 ;letztes Buch
    $Buchnummer = UBound($zeile) - 2
    _Anzeige_Datensatz_nr($Buchnummer)
    case $Button4 ; aktuelles Buch Bearbeiten
    _Bearbeiten_Datensatz_nr($Buchnummer)

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    func _Bearbeiten_Datensatz_nr($Buchnummer)
    FileOpen($Dateiname,1) ; *.db öffen
    _FileWriteToLine($Dateiname, $Buchnummer+1, '', 1) ; in *.db die Zeile mit dem zu bearbeitenden Datensatz löschen
    FileClose($Dateiname) ; *.db schließen
    sleep(500) ; kleine Pause
    _Speichern_in_Datei() ; akutelle bzw. bearbeiteten Datensatz speichern.
    endfunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    func _Einlesen_Datei() ;liest die Daten-Datei ein
    $inhalt = FileRead($Dateiname) ;der komplette dateiinhalt
    if $inhalt = "" then $inhalt = _neue_Datei() ;wenn datei leer, dann neue Datendatei erstellen
    $zeile = StringSplit($inhalt, @crlf, 3) ;erstellt ein array aus Datenzeilen
    GUICtrlSetData($label[0], "Anzahl Bücher : " & UBound($zeile) - 2)
    endfunc ;==>_Einlesen_Datei

    [/autoit] [autoit][/autoit] [autoit]

    func _Anzeige_Datensatz_nr($nummer) ;zeigt die Daten an
    if UBound($zeile) <= 2 then return ;wenn noch kein buch eingegeben
    if $nummer < 1 then $nummer = UBound($zeile) - 2 ;wenn kleiner als erstes buch =>letztes Buch anzeigen
    if $nummer > UBound($zeile) - 2 then $nummer = 1 ;wenn grösser als letztes Buch => erstes Buch anzeigen
    $Buchnummer = $nummer
    $feld = StringSplit($zeile[$nummer], "|", 3) ;Array aus den einzelnen Feldern in der Datenzeile
    for $i = 0 to UBound($input) - 1 ;alle inputfelder füllen
    GUICtrlSetData($input[$i], $feld[$i]) ;Feldinhalt in input schreiben
    Next
    for $i = 0 to UBound($Checkbox) - 1 ;checkboxen füllen
    $status = $feld[$i + UBound($input)]
    GUICtrlSetState($Checkbox[$i], $status) ;Status der checkboxen setzen
    Next
    endfunc ;==>_Anzeige_Datensatz_nr

    [/autoit] [autoit][/autoit] [autoit]

    func _Speichern_in_Datei() ;speichert die Daten in eine Datei
    $Datensatz = "" ;
    for $i = 0 to UBound($input) - 1 ;alle Input-Felder zusammenfassen
    $Datensatz = $Datensatz & GUICtrlRead($input[$i]) & "|" ;in eine Zeile
    Next
    for $i = 0 to UBound($Checkbox) - 1 ;alle Checkbox-Felder zusammenfassen
    $Datensatz = $Datensatz & GUICtrlRead($Checkbox[$i]) & "|" ;Status der checkboxen speichern
    Next
    if StringInStr($inhalt, $Datensatz) = 0 or $inhalt = "" then ;nur wenn Datensatz noch nicht vorhanden oder datei leer
    FileWrite($Dateiname, $Datensatz & @crlf) ;Datensatzzeile in Datei schreiben
    $inhalt = $inhalt & $Datensatz ;auch in den Speicher schreiben
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $inhalt = ' & $inhalt & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    MsgBox(0, "Buchverwaltung", "Datensatz gespeichert!", 1)
    Else
    MsgBox(0, "Buchverwaltung", "Datensatz bereits vorhanden")
    endif
    _Einlesen_Datei() ;alle Daten auf den neuesten Stand bringen
    EndFunc ;==>_Speichern_in_Datei

    [/autoit] [autoit][/autoit] [autoit]

    func _neue_Datei() ;speichert die Daten in eine Datei
    $Datensatz = "" ;
    for $i = 0 to UBound($input) - 1 ;alle Label zusammenfassen
    $Datensatz = $Datensatz & GUICtrlRead($label[$i]) & "|" ;in eine Zeile
    Next
    for $i = 0 to UBound($Checkbox) - 1 ;alle Checkbox-Felder zusammenfassen
    $Datensatz = $Datensatz & GUICtrlRead($Checkbox[$i]) & "|" ;Status der checkboxen speichern
    Next
    FileWrite($Dateiname, $Datensatz & @crlf) ;Datensatzzeile in Datei schreiben
    _Einlesen_Datei()
    MsgBox(0, "Buchverwaltung", "Die Datei " & $Dateiname & " war nicht vorhanden oder leer!" & @crlf & "Es wurde eine neue Buchdatei unter dem Namen " & $Dateiname & " angelegt!")
    EndFunc ;==>_neue_Datei

    [/autoit] [autoit][/autoit] [autoit]

    func _Anzeige_leeren()
    for $i = 0 to UBound($input) - 1 ;alle inputfelder füllen
    GUICtrlSetData($input[$i], "") ;Feldinhalt in input schreiben
    Next
    for $i = 0 to UBound($Checkbox) - 1
    $status = $GUI_UNCHECKED
    GUICtrlSetState($Checkbox[$i], $status) ;Status der checkboxen setzen
    Next
    endfunc ;==>_Anzeige_leeren
    ;==>_Speichern_in_Datei

    [/autoit]
  • Buchmanagment

    • Alina
    • 23. November 2013 um 12:28

    Erst einmal, ich fange jetzt zum zweiten mal an, den nachfolgenden Text zu schreiben. Beim ersten versuch war aus mir nicht ersichtlichen Gründen, auf einmal das Eingabefenster wieder leer. Nicht das ich gerade fertig war. Neiiiiiiiin. :cursing: Und jetzt wieder die richtigen Worte finden? Mann-o-Mann, mir dampft der Kopf. Halbe Nacht im Bett gelegen und mir Gedanken gemacht, wie ich das hin bekomme. Dann mich an Worte vom "Array-King" erinnert, das man fast alles ins Array packen kann. Somit ist der Kampf "Array vs. SQL", zugunsten des Array's entschieden.

    Aber beginne ich ersteinmal damit, das ich mich bedanken möchte bei allen die bis jetzt hilfreich dazu beigetragen haben. :thumbup:
    Andy, Du machst mir angst. Du kennst mich zu gut. Hast aber mit Deinen Worten recht.
    chesstiger , Du sollst keine Bücher kaputt machen. Bist doch kein Kleinkind mehr. Schon meine acht Jahre junge Nichte weiß, das man Bücher, die man nicht mehr haben möchte, zu Geld machen kann.
    Okay, kommen wir nun zum Problem bzw. rede ich weiter.
    Wenn ich feste Datenbestände habe, gehe ich wie folgt vor, wobei ich hier im Bsp. zwei mal den "Strobel-Datensatz" verwendet habe:

    Spoiler anzeigen
    [autoit]


    ; Pfad zur Datei: m:\autoit\lernen\array\datei_nr_0017\array_2_d.au3

    [/autoit] [autoit][/autoit] [autoit]

    ; erst Include angeben
    #include <Array.au3>
    ; Array mit Daten bestücken/füllen
    Local $bookrray[2][21] = [["Das Wesen", "Strobel, Arno", "Fischer Verlag", "05.11.2010", "X", "8,95", "Taschenbuch", "3596186323", "9783596186327", "368", "Maria Musterfrau", "31.02.2013", "31.03.2013", "Regal-B , Fach 3", "Strobel , Das Wesen , Thriller ,", "gelesen von Mara Sörens, Ina Müller", "leer", "http://www.buecher.de/shop/buecher/das-wesen/strobel-arno/products_products/detail/prod_id/29908840/", "Ja", "5" ],["Das Wesen", "Strobel, Arno", "Fischer Verlag", "05.11.2010", "X", "8,95", "Taschenbuch", "3596186323", "9783596186327", "368", "Maria Musterfrau", "31.02.2013", "31.03.2013", "Regal-B , Fach 3", "Strobel , Das Wesen , Thriller", "gelesen von Mara Sörens, Ina Müller", "leer", "http://www.buecher.de/shop/buecher/das-wesen/strobel-arno/products_products/detail/prod_id/29908840/", "Ja", "5" ]]
    ; Datenausgabe im horiz. 2D Array ausgeben
    _ArrayDisplay($bookrray, "$bookrray als horiz. 2D Array")
    ; Datenausgabe im vertik. 2D Array
    _ArrayDisplay($bookrray, "$bookrray als vertik. 2D Array (Zeile mit Spalte getauscht)", -1, 1)

    [/autoit]

    Das sind, wie gesagt, ja feste Datensätze und ich möchte, da es sich um ein Buchverwaltungsscript handelt die Datensätze flexibel haben. Es sollen Datensätze dazu kommen können, Datensätze bearbeitet werden können und Datensätze gelöscht werden können.
    Somit müssen die Datensätze ausgelagert werden. Benenne ich die Auslagerungsdatei mal "buch_db.csv".
    Wie ich da die textbasierten Inputfelder speichern würde, ist mir klar, da ich es bereits bei anderen Scripten gemacht habe.
    Wie sieht es da aus mit "Checkbox1", was muss in die buch_db.csv geschrieben werden, wenn es angeharkt ist und was wenn es nicht angeharkt ist? Wenn die Frage ausreichend gelöst ist, bin ich schon mal einen Schritt weiter.

    Mal zwischendurch: "K-O-P-F-K-I-N-O"

    Ein weiteres Problem ist es, die Daten dann von der "buch_db.csv" ins Array und dann ins Inputfeld zurück zu bekommen.

    Soweit sollte es erst einmal reichen.
    Wenn dieses Projekt fertig ist und alle Beeidigten dann nichts dagegen haben, würde ich das ganze gerne so dokumentieren, das es von jedem verstanden wird. Vielleicht wird es dann ein Tutorial. ;)

    So sollte die buch_db.csv doch mit einem Datensatz aussehen, oder? Nur das "X" an fünfter Stelle ist erraten, da es sich um das o. g. Problem der Checkbox1 ist.

    Spoiler anzeigen
    [autoit]


    Das Wesen | Strobel, Arno | Fischer Verlag | 05.11.2010 | X | 8,95| Taschenbuch | 3596186323 | 9783596186327 | 368 | Maria Musterfrau | 31.02.2013 | 31.03.2013 | Regal-B , Fach 3 | Strobel , Das Wesen , Thriller , | gelesen von Mara Sörens, Ina Müller | leer | http://www.buecher.de/shop/buecher/d…od_id/29908840/ | Ja | 5

    [/autoit]

    Lieb wäre, wenn ich bezogene Beispiele zu Eurer Hilfe beifügt. Was Arrays betrifft bin ich etwas blond. ;)

    Ich wünsche allen ein schönes Wochenende

  • Eure Top 10 Mix-Drinks

    • Alina
    • 22. November 2013 um 17:31

    Gut das ich mich da heraushalten kann.
    Ich lieb Kirsch-Banane und ggf. mal ein Flens-Gold oder morgens ein Flens-Malz. ;)

  • Buchmanagment

    • Alina
    • 22. November 2013 um 17:23

    Moin chesstiger.
    Alleine das was Du da geschrieben hats, ist für mich der Wald um die Ecke. :(

    Moin RR.
    Ich bin gerade dabei Dein Vorschlag zu durchschauen. Da blicke ich schon besser durch. ;)

  • Buchmanagment

    • Alina
    • 22. November 2013 um 02:28

    sehr brauchbar !!!
    Warum nicht SQL? Weil ich damit noch nichts zu tun hatte und nicht weiß wie und wo ich da bei SQL anfangen soll es zu lernen und anzuwenden.

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™