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

Beiträge von autoBert

  • wie kann ich das loslassen einer taste erfassen?

    • autoBert
    • 14. Juni 2009 um 18:28

    Hallo widdow,

    wenn du dir das Skript von Jam00 anschaust kommst du auf die Idee, Stichwort DO ... Until,

    mfg (Auto)Bert

  • Warum bleibt das fenster nicht?

    • autoBert
    • 14. Juni 2009 um 18:24

    Hallo BlackDeath911 ([OT]wieviele 911er schwarze Porsches hast du den schon zerlegt?[/OT]),

    zu Kartenreitern schau dir mal die Hilfe zu GuiCtrlCreateTab an.
    Wenn du mehrere GUIs erstellen willst solltest du dir überlegen im OnEventModus zu skripten (ist meines Erachtens nach einfacher) lies dazu in der Hilfe das Kapitel Gui-Konzepte.

    mfg (Auto)Bert

  • Koordinaten im Fenster ?

    • autoBert
    • 14. Juni 2009 um 17:58

    Hallo funfun,

    0/0 ist immer oben links oder hab ich deine Frage gar nicht verstanden,

    mfg (Auto)Bert

  • Warum bleibt das fenster nicht?

    • autoBert
    • 14. Juni 2009 um 17:33

    Hallo BlackDeath,

    hier noch einmal das Skript (lauffähig):

    Spoiler anzeigen
    [autoit]

    ; *** Start added by AutoIt3Wrapper ***
    #include <GUIConstantsEx.au3>
    ; *** End added by AutoIt3Wrapper ***
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    Global $ok, $1, $2, $3, $4
    Global $Title = "Test"
    Global $hGui, $exit, $ok

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

    _abfragebox ("Programme")

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

    Func _abfragebox($sTitle)
    ;diese abfragebox macht soweit das sie RAR namen kopiert & Samples können geläscht werden
    $hGui = GUICreate($sTitle, 500, 500)
    ;BUTTONS
    GUICtrlCreateLabel("Hier die gewünschten Programme auswählen und dann FERTIG drücken", 10, 10)
    $1 = GUICtrlCreateCheckbox("ICQ 6.5", 11, 40)
    $2 = GUICtrlCreateCheckbox("Firefox", 11, 70)
    $3 = GUICtrlCreateCheckbox("Divx", 11,100)
    $4 = GUICtrlCreateCheckbox("Java", 11,130)
    $1Stat = GUICtrlCreateLabel("",120,40,350,25)
    $2Stat = GUICtrlCreateLabel("",120,70,350,25)
    $3Stat = GUICtrlCreateLabel("",120,100,350,25)
    $4Stat = GUICtrlCreateLabel("",120,130,350,25)

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

    $ok = GUICtrlCreateButton("FERTIG", 150, 460, 60, 30)
    $exit = GUICtrlCreateButton("Exit", 250, 460, 60, 30)
    GUISetState() ; GERBAUCHT damit GUI angezeigt wird

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    Case $exit
    Exit
    Case $ok
    ConsoleWrite("Alles OK" & @CRLF)
    ConsoleWrite(GUICtrlRead($1) & " " & $GUI_CHECKED & @CRLF)
    If GUICtrlRead($1) = $GUI_CHECKED Then
    GUICtrlSetData($1Stat,"Wird installiert ICQ 6.5")
    ;hier Insatllationsroutine aufrufen runwait
    sleep (3000)
    GUICtrlSetData($1Stat,"wurde installiert ICQ 6.5")
    EndIf
    If GUICtrlRead($2) = $GUI_CHECKED Then
    GUICtrlSetData($2Stat,"Wird installiert FireFox")
    ;hier Insatllationsroutine aufrufen
    sleep (3000)
    GUICtrlSetData($2Stat,"wurde installier FireFox")
    EndIf
    If GUICtrlRead($3) = $GUI_CHECKED Then
    GUICtrlSetData($3Stat,"Wird installiert DivX")
    ;hier Insatllationsroutine aufrufen
    sleep (3000)
    GUICtrlSetData($3Stat,"wurde installiert DivX")
    EndIf
    If GUICtrlRead($4) = $GUI_CHECKED Then
    GUICtrlSetData($4Stat,"Wird installiert JAVA")
    ;hier Insatllationsroutine aufrufen
    sleep (3000)
    GUICtrlSetData($4Stat,"wurde installiert JAVA")
    EndIf
    GUIDelete($hGui)
    EXitLoop
    EndSwitch
    WEnd
    EndFunc

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


    Du must nur die MsgBoxen gegen den Aufruf des Installprogramms tauschen z.B. mit runwait

    viel Spass damit

    mfg (Auto)Bert

  • Warum bleibt das fenster nicht?

    • autoBert
    • 14. Juni 2009 um 16:52

    Hallo,

    dies kann nicht das komplette Skript sein (läst sich nicht ausführen), aber meine Glaskugel meint:

    Spoiler anzeigen
    [autoit]

    _abfragebox ("Programme")
    Func _abfragebox($sTitle)
    ;diese abfragebox macht soweit das sie RAR namen kopiert & Samples können geläscht werden
    GUICreate($sTitle, 500, 500)
    ;BUTTONS
    GUICtrlCreateLabel("Hier die gewünschten Programme auswählen und dann FERTIG drücken", 10, 10)
    $1 = GUICtrlCreateCheckbox("ICQ 6.5", 11, 40)
    $2 = GUICtrlCreateCheckbox("Firefox", 11, 70)
    $3 = GUICtrlCreateCheckbox("Divx", 11,100)
    $4 = GUICtrlCreateCheckbox("Java", 11,130)
    $ok = GUICtrlCreateButton("FERTIG", 150, 460, 60, 30)
    $exit = GUICtrlCreateButton("Exit", 250, 460, 60, 30)
    GUISetState() ; GERBAUCHT damit GUI angezeigt wird
    EndFunc
    While 1
    $msg = GUIGetMsg()
    If $msg = -3 Then ; abfrage für den X button
    Exit
    EndIf
    ;IF für OK button
    If $msg = $ok Then
    If GUICtrlRead($1) = $GUI_CHECKED Then
    ;install ICQ6.5
    MsgBox (0,"Wird installiert","ICQ 6.5",5)
    EndIf
    If GUICtrlRead($2) = $GUI_CHECKED Then
    ;install Firefox
    MsgBox (0,"Wird installiert","FIREFOX",5)
    Endif
    If GUICtrlRead($3) = $GUI_CHECKED Then
    ;install Divx
    MsgBox (0,"Wird installiert","Divx",5)
    Endif
    If GUICtrlRead($4) = $GUI_CHECKED Then
    ;install Java
    MsgBox (0,"Wird installiert","JAVA",5)
    Endif
    Else
    GUIDelete($sTitle)
    EXitLoop
    EndIf
    ;If für exit button
    If $msg = $exit Then
    Exit
    EndIf
    WEnd

    [/autoit]

    so würde es gehen falls du im MsgLoop-Modus skriptest und die Gui die einzigste des Skriptes ist, wenn nicht poste das komplette Skript, damit man etwas genauer schauen kann,

    mfg (Auto)Bert

  • Inhalt einer html datei löschen und neuen inhalt einfügen?

    • autoBert
    • 14. Juni 2009 um 15:11

    Hallo katangar,

    ja und am besten benutzt du auch FileOpen und FileClose, die entsprechenden Modi für FileOpen beachten:

    [autoit]

    $hFile = FileOpen("C:\DEINEDATEI.HTML",0) ;Pfadangabe austauschen
    ;einlesen
    $sData = FileRead($hFile)
    FileClose($hFile)
    ;hier die Daten abändern oder einlesen ganz weglassen
    $hFile = FileOpen($hFile,2)
    FileWrite($hFile,$sData)
    FileClose($hFile)

    [/autoit]


    Im Forum online erstellt also testen und danach viel Spass damit,

    mfg (Auto)Bert

  • BereichsCheck

    • autoBert
    • 14. Juni 2009 um 14:46

    Hallo raydock,

    würde es ja gerne glauben, dass du es nicht für einen BOT benutzen willst, aber wie gesagt im Zusammenhang mit deinen bisherigen Threads kann man nur zu diesem Ergebnis kommen,

    siehe hierzu auch

    Zitat

    Hört sich für mich nach einem Bot an! Hier sind Bots verboten! Wenn du hilfe bei Bots brauchst meld dich in meinem Forum an, da ist es erlaubt ;)

    gefunden in [ offen ] AutoScript

    mfg (Auto)Bert

  • BereichsCheck

    • autoBert
    • 14. Juni 2009 um 14:40

    Hallo raydock,

    und der Thread Pause der von Oscar geschlossen wurde zeigt das du an einem BOT bastelst,

    mfg (Auto)Bert

  • BereichsCheck

    • autoBert
    • 14. Juni 2009 um 14:34

    Hallo raydock,

    Im zusammenhang mit deinen anderen Threads z.B.X/Y Kooordinate fällt mir zu diesem Beitrag das Wort BOT ein, lies also die Forenregeln, danach wirst du sicher verstehen warum du hierzu keine Unterstützung erhälst,

    Edit dein Thread Pause der von Oscar geschlossen wurde bestätigte meine Vermutung, dass du BOTen möchtest

    mfg (Auto)Bert

  • Zufällige kombination

    • autoBert
    • 14. Juni 2009 um 14:16

    Hallo zero2q,

    die Funktion die du dir dazu anschauen solltest lautet ganz zufällig random, weitere Funktionen asc und chr, in meinen Demo zur Aufrufen der _EditBox im Forum Skripte habe ich alle 3 für etwas ähnliches verwendet,

    mfg (Auto)Bert

  • Programm das den Euros4Click-Layer schließt

    • autoBert
    • 14. Juni 2009 um 13:55

    Hallo Michi26206

    Zitat von Michi26206

    Nicht ganz. Habe seit geraumer Zeit so nen Layer. Allerdings muss man ja 20€ zusammen bekommen damit die zahlen. Bin wieder mal bei 10€ und muss jetzt noch sammeln. Da aber demnächst meine Pages down gehen möchte ich den dann noch i-wie vollbekommen.

    Dein Vorhaben verstösst meines Erachtens nach gegen die AGB von Euros4Click.DE

    Die Konsequenzen hatte ich dir schon in meinem vorigen Beitrag beschrieben:

    Zitat von AutoBert

    Edit: wollte damit zum Ausdruck bringen, dass Euro4Click.de dir diese (deine eigenen) Klicks heruasrechnet und nicht vergütet. Irgendwann kündigen sie dir dann den Vertrag und du musst froh sein wenn sie nicht gleichzeitig Schadenersatz verlangen für ihre Aufwendungen

    Also schliess bitte den Thread und lass es bei dem Versuch,

    @keyboard-freak du solltest dir die AGBs deines Werbepartners auch genau durchlesen und dementsprechend handeln (Projekt einstellen!)

    mfg (Auto)Bert

  • Wie kann man Strings komprimieren?

    • autoBert
    • 14. Juni 2009 um 01:06

    Hallo DeepRed,

    google mal nach TDFUnrar, in diesem Delphi-Projekt ist eine UnRar-DLL und Source-Code enthalten, vielleicht kannst du diese DLL ja einbinden,

    Edit: Link eingefügt

    mfg (Auto)Bert

  • Fremddateien "includen" (ohne FileInstall)

    • autoBert
    • 14. Juni 2009 um 00:54

    Hallo BugFix,

    finde die Idee super, bin auch der Meinung 1 Datei und evtl. noch eine DB ist genug.

    mfg (Auto)Bert

  • Automatische Zeilensuche -> Wo ist der Fehler

    • autoBert
    • 13. Juni 2009 um 23:53

    Hallo keyboard-freak,

    einfach in Scite random markieren und danach F1 drücken, dann erhälst du folgendes zum Lesen:

    Zitat

    Auszug aus Hilfe: Random
    --------------------------------------------------------------------------------

    Erzeugt eine pseudozufällige Fließkommazahl.

    Random ( [Min [, Max [, Flag]]] )

    Parameter

    Min [optional] Die kleinste zu erzeugende Zahl. Vorgabe ist 0.
    Max [optional] Die größte zu erzeugende Zahl. Vorgabe ist 1.
    Flag [optional] Wenn auf 1 gesetzt, wird eine Integerzahl zurückgegeben. Vorgabe ist eine Fließkommazahl.

    Rückgabewert

    Erfolg: Gibt eine Pseudozufallszahl zwischen Min und Max zurück.
    Fehler: Gibt 0 zurück und setzt @error auf 1, falls falsche Parameter.


    Bemerkungen

    Standardmäßig arbeitet die Zufallsfunktion mit Dezimal-/Fließkommazahlen. Werden nur Integer/Ganzzahlen gewünscht, ist das Flag auf 1 zu setzen.

    Wird nur ein Argument angegeben, so wird dieses als Max interpretiert.

    Das Ergebnis liegt im Bereich von Min bis INKLUSIVE Max bei Verwendung von Integer (aber kleiner Max bei Verwendung von Fließkommazahlen).

    Wenn Integer verwendet werden, so muss Max-Min kleiner als 2^31 sein.

    Alles anzeigen

    mfg (Auto)Bert

  • 2d array

    • autoBert
    • 13. Juni 2009 um 23:30

    Hallo

    ich kenne den Befehl zwar nicht aber versuchs doch so:

    [autoit]

    Do
    $ausgabe[$zaehler][0] = _FFCmd ("content.frames[0].document.links["&$zaehler&"]")
    $zaehler = $zaehler +1
    Until $zaehler = $links

    [/autoit]

    mfg (Auto)Bert

  • Probleme bei einer Funktion in einer Gui die eine Gui schließen soll aber nicht macht

    • autoBert
    • 13. Juni 2009 um 23:13

    Hallo TheBigX,

    so funktioniert es

    [autoit]

    ControlSend ($handle,"","Edit2",GuiCtrlRead($PW))

    [/autoit]

    $PW ist eine Variable die die ControlID enthält, mit GuiCtrlRead(ControlId) erhälst du den Inhalt,

    mfg (Auto)Bert

  • Programm das den Euros4Click-Layer schließt

    • autoBert
    • 13. Juni 2009 um 21:44
    Zitat von Michi26206

    Hi,

    ja das bestimmt. Aber der Euros4Click Layer soll ja vergütet werden. Das wird ein Programm das mit Daten vom REchner in ein Formular pustet und des dan abschickt damit man es onlin sehen kann. Und damitscih ein Teil des Webspaces bezahlt habe ich den Euros4Click Layer drin ;)

    Hört sich erst einmal so an, as ob du dir eine Einnahmequelle erschliessen möchtest, aber das ist meines Wissens nach bei Euro4Click nicht möglich. In der Hilfe findest du Beispiele, gebe einfach mal _IE_Example bei Suchen als Stichwort ein, wenn du danach zu Inhalt wechselst siehst du den aufgeklappten Baum mit allen verfügbaren Funktionen,

    Edit: wollte damit zum Ausdruck bringen, dass Euro4Click.de dir diese (deine eigenen) Klicks heruasrechnet und nicht vergütet. Irgendwann kündigen sie dir dann den Vertrag und du musst froh sein wenn sie nicht gleichzeitig Schadenersatz verlangen für ihre Aufwendungen

    mfg (Auto)Bert

  • alle 4 sekunden, linke maustaste drücken

    • autoBert
    • 13. Juni 2009 um 21:14

    Hallo joniii,

    Zitat von joniii

    hallo alle zusammen,
    ich hab mich heute zum allersten mal mit autoit beschäftigt um ein script zu machen das alle 4 sec die enter taste gedrückt hat, hat dann auch geklappt weil jm aus einen forum mir einen code geschickt hat.
    der ging so:

    Code
    while 1
    Send("{Enter}")
    Sleep(4000)
    wend


    und jetzt mein problem: ich bräuchte einen code , bei dem alle 4 sekunden die linke maustaste gedrückt wird, ich weis jetzt aber nicht was ich in die { } dafür einsetzen muss.
    wäre cool wenn mir da einer helfen könnte , oder gleich den passenden code reinstellen würde.
    PS: ich benutze autoIt v3

    Für welchen (Un)sinn soll dass den sein, keine vernünfzige Anwendung benötigt alle 4 sec eine Entertaste oder einen Mausklick. Mir fällt da nur das Wort BOT ein. Also lies erst einmal die Forenregeln, und vergiss dein BOT, da in diesem Forum so etwas nicht unterstützt wird,

    mfg (Auto)Bert

  • Probleme beim abspeichern und wiederauslesen von GIFs in SQLite DB

    • autoBert
    • 13. Juni 2009 um 15:31

    Hallo Progandy,

    danke erster Test klappt super :thumbup: ,

    Edit: es wurden immer noch Flaggen unterschlagen, das lag aber an dem Text-File, dass noch (bisher nicht abgefangene) SQLite-Errors erzeugt hat, nach Anpassung des Textfiles werden alle 227 Flaggen (Textfile-Eintrag + Flagge vorhanden) ein- und ausgelesen.

    Beim Auslesen werden noch für die Einträge bei denen keine Flagge vorhanden war Files mit der Länge 0 erzeugt, aber da find ich sicher noch eine Lösung

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #include <TreeViewConstants.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>
    #Include <Misc.au3>
    #Include <GuiListView.au3>

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

    Opt('GUIOnEventMode', 1)
    Opt('MUSTDECLAREVARS' ,1)

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

    Global $sTitel = 'Flaggen Ver.: 0.7.2'
    Global $Colourpath = @ScriptDir & '\flags'

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

    ;Global $himglstColours = _GUIImageList_Create()

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

    If _Singleton($sTitel, 1) = 0 Then
    MsgBox(64, $sTitel, $sTitel & ' ist bereits gestartet',5)
    Exit
    EndIf

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

    Global $sSqldb = @ScriptDir & '\Laender.db'

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

    Global $hfrmMain ;Hauptfenster wird immer sofort erzeugt
    ;Global $hfrmConf=0 ;Konfigurationsfenster nur bei Bedarf 1mal erzeugt
    ;Global $hfrmAkt ;aktuelles Fenster
    Global $lstvwLaender, $hLVHandle

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

    Global $hmnuitmFile, $hmnuitmListQueries, $hmnuitm2, $hmnuitmExit, $hmnuitmSave, $hmnuitmWindow, $hmnuitmRestore, $nMsg

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

    _Main()
    Exit

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

    Func _Main()
    Local $iLeft, $iWith, $iNr, $hLine1, $aText, $hImage
    $hfrmMain = GUICreate($sTitel, 500, 300, 220, 200) ; GuiFenster erstellen ;800, 540, -1, -1, $WS_SIZEBOX + $WS_SYSMENU +$WS_MAXIMIZEBOX +$WS_MINIMIZEBOX)
    ;$hfrmAkt = $hfrmMain ;zum vergleichen merken
    GUISetOnEvent($GUI_EVENT_CLOSE, '_exitMain')

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

    $hmnuitmFile = GUICtrlCreateMenu("&Datei")
    $hmnuitmWindow = GUICtrlCreateMenu("&Fenster")
    ;$hmnuitmListQueries = GUICtrlCreateMenuItem("&Auswertungen", $hmnuitmFile)
    ;$hmnuitmSave = GUICtrlCreateMenuItem("&Zwischenspeicherung", $hmnuitmFile)
    ;$MenuItem2 = GUICtrlCreateMenuItem("", $hmnuitmFile)
    $hmnuitmExit = GUICtrlCreateMenuItem("Be&enden", $hmnuitmFile)
    GUICtrlSetOnEvent(-1, '_exitMain')
    $lstvwLaender = GUICtrlCreateListView("Speichern?|nID|Bzeichnung|Flagge", 10, 10, 480, 230, _
    BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT), BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES)) ;$LVS_SHOWSELALWAYS
    ; wichtig ist der Stil $LVS_Report und der eweiterte Stil $LVS_EX_Checkboxes
    ; erzeugt eine Listview mit den Spaltenüberschriften die zurückgegebene ID wird in der Variablen $ListView gespeichert
    $hLVHandle = GUICtrlGetHandle($lstvwLaender) ; das Handle aus ID ermitteln

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

    _GUICtrlListView_SetColumnWidth($lstvwLaender, 0, 80) ; Breite für Spalte mit Index 0 auf 80 setzen
    _GUICtrlListView_SetColumnWidth($lstvwLaender, 1, 40) ; Breite für Spalte mit Index 1 auf 160 setzen
    _GUICtrlListView_SetColumnWidth($lstvwLaender, 2, 160) ; Breite für Spalte mit Index 2 auf 160 setzen

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

    if FileExists($sSqldb) = 0 Then
    _DatenbankAnlegen()
    Else
    _SQliteStart()
    ListviewFuellen()
    EndIf
    FlaggeAusgeben("DE") ;Test für Deutschland-Flagge (im Moment für alle Flaggen in @ScriptDir)
    GUISetState()
    While 1
    Sleep(125)
    WEnd

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

    EndFunc

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

    Func _exitMain()
    _SQLite_Close()
    _SQLite_Shutdown()
    Exit
    EndFunc

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

    Func _SQliteStart()
    _SQLite_Startup ()
    If @error > 0 Then
    MsgBox(16, "SQLite Fehler", "SQLite.dll kann nicht geladen werden!")
    Exit
    EndIf
    _SQLite_Open($sSqldb)
    If @error > 0 Then
    MsgBox(16, "SQLite Fehler", "Kann Datenbank nicht öffnen")
    _exitMain()
    EndIf
    EndFunc

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

    Func _DatenbankAnlegen()
    Local $aSql, $res
    _FileCreate($sSqldb)
    _SQliteStart()
    $aSql = "CREATE TABLE [Laender] ([lID] VARCHAR(3) UNIQUE NOT NULL,[lName] vARCHAR(50) NULL,[lColours] BLOB NULL)"
    $res = _SQLite_Exec (-1, $aSql)
    LaenderEintragen()
    ;_SQLite_Close()
    ;_SQLite_Shutdown()
    EndFunc

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

    Func EintragZeigen()
    Local $aItem = _GUICtrlListView_GetItemTextArray($hLVHandle)
    FlaggeAusgeben($aItem[1])
    WinSetTitle($hfrmMain,"",$sTitel & " " & $aItem[3] & " ist ausgewählt")
    EndFunc ;==>Edit

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

    Func FlaggeAusgeben($slID)
    ConsoleWrite("Flagge für: " & $slID & @CRLF)
    Local $aSql, $res ,$rawFile, $aRow, $hQuery
    $aSql = "Select * from Laender WHERE lID=" & _SQLite_Escape($slID) & " LIMIT 1" ;SQL Abfrage für das gewünschte Land
    If $SqlITE_OK <> _SQlite_Query (-1, $aSql, $hQuery) Then _ ; erstellt das Query mit den Daten
    MsgBox(0,"SQLite Error","Error Code: " & _SQLite_ErrCode() & @CR & "Error Message: " & _SQLite_ErrMsg())
    while _SQLite_FetchDataBin ($hQuery, $aRow ) = $SqlITE_OK ; gibt 1D-Array zurück mit den Daten einer Zeile aus Query
    If $aRow[2]="" Then ContinueLoop
    $rawFile = FileOpen(_DecodeUTF8($aRow[0]) & ".gif",18)
    ;ConsoleWrite(_DecodeUTF8($aRow[0]) & " " & _DecodeUTF8($aRow[1]) & @CRLF)
    FileWrite($rawFile,$aRow[2])
    FileClose($rawFile)
    WEnd
    EndFunc

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

    Func ListviewFuellen()
    Local $iZeit = TimerInit(), $j
    Local $aSql, $res ,$rawFile, $aRow, $hQuery
    $aSql = 'Select * from Laender order by lID' ; SQL Abfage zeigt alle Länder der Tabelle
    If $SqlITE_OK <> _SQlite_Query (-1, $aSql, $hQuery) Then _ ; erstellt das Query mit den Daten
    MsgBox(0,"SQLite Error","Error Code: " & _SQLite_ErrCode() & @CR & "Error Message: " & _SQLite_ErrMsg())
    while _SQLite_FetchDataBin ($hQuery, $aRow ) = $SqlITE_OK ; gibt 1D-Array zurück mit den Daten einer Zeile aus Query
    If $aRow[2]="" Then
    $aRow[2]="NEIN"
    Else
    $aRow[2]="JA"
    EndIf
    FlaggeAusgeben(_DecodeUTF8($aRow[0])) ;später löschen
    GUICtrlCreateListViewItem(" |" & _DecodeUTF8($aRow[0]) & "|" & _DecodeUTF8($aRow[1]) & "|" & $aRow[2], $lstvwLaender)
    GUICtrlSetOnEvent(-1,"EintragZeigen")
    $j += 1
    WEnd
    $iZeit = TimerDiff($iZeit)
    MsgBox(0,"Anzahl: " & $j,"in " & $iZeit & " ms")
    EndFunc

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

    Func LaenderEintragen()
    Local $iZeit = TimerInit()
    Local $aSql = "", $res, $rawFile, $_preData, $_postData
    Local $i, $j, $k, $aName, $sData = "", $pic
    Local $aFile = StringSplit(StringReplace(FileRead("LändercodeTabelle_ISO_3166_2.txt"),@CRLF,"|"),"|") ;0 basierend aber es steht die Anzahl darin
    If Not IsArray($aFile) Then Return
    ;_ArrayDisplay($aFile)
    ;hier werden die ListViewItems erzeugt mit das "|" ist das Trennzeichen zwischen den Spalten
    _GUICtrlListView_BeginUpdate($lstvwLaender)
    For $i = 1 To $aFile[0] -1
    $aName = StringSplit($aFile[$i],";",2) ;Dateinamen teilen Trennzeichen ist Punkt 2=Array = 0-basierend

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

    if FileExists($Colourpath & "\" & $aName[1] & ".gif") then
    $rawFile = FileOpen($Colourpath & "\" & $aName[1] & ".gif",16)
    $sData = FileRead($rawFile,FileGetSize($Colourpath & "\" & $aName[1] & ".gif"))
    FileClose($rawFile)
    Else
    $sData = "NEIN"
    EndIf
    GUICtrlCreateListViewItem(" |" & $aName[1] & "|" & $aName[0] & "|" & $sData, $lstvwLaender)
    GUICtrlSetOnEvent(-1,"EintragZeigen")
    Select
    Case $sData = "NEIN"
    $aSql &= "INSERT INTO Laender (lID,lName) VALUES ('" & $aName[1] & "','" & $aName[0]& "');" & @CRLF
    $k += 1
    Case Else
    $aSql &= "INSERT INTO Laender (lID,lName,lColours) VALUES ('" & $aName[1] & "','" & $aName[0]& "', X'" & Hex($sData) & "');" & @CRLF
    $j += 1
    EndSelect
    ;SQL-Aktionen sammeln
    If StringLen($aSQL) > 100000 Then
    ; sonst wird zu viel Speicher verbraucht oder so, auf jeden Fall läuft es nicht.
    $res = _SQLite_Exec (-1, $aSql); SQL auf einmal ausführen
    $aSQL = ""
    EndIf
    Next
    $res = _SQLite_Exec (-1, $aSql); SQL auf einmal ausführen
    _GUICtrlListView_EndUpdate($lstvwLaender)
    $iZeit = TimerDiff($iZeit)
    MsgBox(0,"Anzahl: " & $j + $k,"in " & $iZeit & " ms")
    EndFunc

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

    ; Author(s): piccaso (Fida Florian)
    ; Modified: Prog@ndy
    Func _SQLite_FetchDataBin($hQuery, ByRef $aRow)
    If $g_hDll_SQLite = 0 Then Return SetError(1, 0, $SQLITE_MISUSE)
    If Not __SQLite_hChk($hQuery, $SQLITE_QUERYHANDLE) = $SQLITE_OK Then Return SetError(7, 0, $SQLITE_MISUSE)
    If Not IsArray($aRow) Then
    Dim $aRow[1]
    EndIf
    Local $iRval_Step, $iRval_ColCnt, $sRval, $i, $iRval_coltype
    Local $iColBytes, $vResult, $vResultStruct
    Local $SQLITE_NULL = 5
    $iRval_Step = DllCall($g_hDll_SQLite, "int:cdecl", "sqlite3_step", "ptr", $hQuery)
    If @error > 0 Then
    Return SetError(1, 0, $SQLITE_MISUSE)
    ElseIf $iRval_Step[0] = $SQLITE_ROW Then
    $iRval_ColCnt = DllCall($g_hDll_SQLite, "int:cdecl", "sqlite3_data_count", "ptr", $hQuery)
    If @error > 0 Then
    Return SetError(2, 0, $SQLITE_MISUSE)
    EndIf
    If $iRval_ColCnt[0] > 0 Then
    ReDim $aRow[$iRval_ColCnt[0]]
    For $i = 0 To $iRval_ColCnt[0] - 1
    $iColBytes = DllCall($g_hDll_SQLite, "int:cdecl", "sqlite3_column_bytes", "ptr", $hQuery, "int", $i)
    If @error > 0 Then Return SetError(5, 0, $SQLITE_MISUSE)
    $vResult = DllCall($g_hDll_SQLite, "ptr:cdecl", "sqlite3_column_blob", "ptr", $hQuery, "int", $i)
    If @error > 0 Then Return SetError(6, 0, $SQLITE_MISUSE)
    if $iColBytes[0]=0 Then
    $aRow[$i] = ""
    else
    $vResultStruct = DllStructCreate("byte[" & $iColBytes[0] & "]", $vResult[0])
    $aRow[$i] = DllStructGetData($vResultStruct, 1)
    Endif
    Next
    Return $SQLITE_OK
    Else
    Return SetError(-1, 0, $SQLITE_EMPTY)
    EndIf
    Else ; incl. $SQLITE_DONE
    _SQLite_QueryFinalize($hQuery)
    If $iRval_Step[0] <> $SQLITE_OK Then SetError(-1)
    Return $iRval_Step[0]
    EndIf
    EndFunc ;==>_SQLite_FetchData

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

    Func _DecodeUTF8(ByRef Const $vData)
    ; Author: Prog@ndy
    Local $sData
    If IsBinary($vData) Then Return BinaryToString($vData, 4)
    Return BinaryToString(StringToBinary($sData, 1), 4)
    EndFunc

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

    Func _EncodeUTF8(ByRef Const $vData, $fBinary =False)
    ; Author: Prog@ndy
    If $fBinary Then Return StringToBinary($vData,4)
    Return BinaryToString(StringToBinary($vData,4),1)
    EndFunc

    [/autoit]


    überarbeitete Ländertabelle: Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    Die Flaggen befinden sich im Zip-File #1

    mfg (Auto)Bert

  • Brauch hilfe mit AutoIt

    • autoBert
    • 13. Juni 2009 um 13:29

    Hallo @phallas,

    ich galube du hast die Forenregeln auch noch nicht gelesen, sonst würdest du einem BOTer deine Hilfe nicht anbieten,

    Sirocool ja könnte einem ersparen soviele unnötige Threads zu lesen,

    mfg (Auto)Bert

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™