Hallo widdow,
wenn du dir das Skript von Jam00 anschaust kommst du auf die Idee, Stichwort DO ... Until,
mfg (Auto)Bert
Hallo widdow,
wenn du dir das Skript von Jam00 anschaust kommst du auf die Idee, Stichwort DO ... Until,
mfg (Auto)Bert
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
Hallo funfun,
0/0 ist immer oben links oder hab ich deine Frage gar nicht verstanden,
mfg (Auto)Bert
Hallo BlackDeath,
hier noch einmal das Skript (lauffähig):
; *** 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
_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)
$ok = GUICtrlCreateButton("FERTIG", 150, 460, 60, 30)
$exit = GUICtrlCreateButton("Exit", 250, 460, 60, 30)
GUISetState() ; GERBAUCHT damit GUI angezeigt wird
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
Du must nur die MsgBoxen gegen den Aufruf des Installprogramms tauschen z.B. mit runwait
viel Spass damit
mfg (Auto)Bert
Hallo,
dies kann nicht das komplette Skript sein (läst sich nicht ausführen), aber meine Glaskugel meint:
_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
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
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)
Im Forum online erstellt also testen und danach viel Spass damit,
mfg (Auto)Bert
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
ZitatHö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
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
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
Hallo 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:
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
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
Hallo BugFix,
finde die Idee super, bin auch der Meinung 1 Datei und evtl. noch eine DB ist genug.
mfg (Auto)Bert
Hallo keyboard-freak,
einfach in Scite random markieren und danach F1 drücken, dann erhälst du folgendes zum Lesen:
ZitatAlles anzeigenAuszug 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.
mfg (Auto)Bert
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
mfg (Auto)Bert
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
Hallo 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:
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
Hallo Progandy,
danke erster Test klappt super
,
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
#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>
Opt('GUIOnEventMode', 1)
Opt('MUSTDECLAREVARS' ,1)
Global $sTitel = 'Flaggen Ver.: 0.7.2'
Global $Colourpath = @ScriptDir & '\flags'
;Global $himglstColours = _GUIImageList_Create()
[/autoit] [autoit][/autoit] [autoit]If _Singleton($sTitel, 1) = 0 Then
MsgBox(64, $sTitel, $sTitel & ' ist bereits gestartet',5)
Exit
EndIf
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
Global $hmnuitmFile, $hmnuitmListQueries, $hmnuitm2, $hmnuitmExit, $hmnuitmSave, $hmnuitmWindow, $hmnuitmRestore, $nMsg
[/autoit] [autoit][/autoit] [autoit]_Main()
Exit
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')
$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
_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
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
EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _exitMain()
_SQLite_Close()
_SQLite_Shutdown()
Exit
EndFunc
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
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
Func EintragZeigen()
Local $aItem = _GUICtrlListView_GetItemTextArray($hLVHandle)
FlaggeAusgeben($aItem[1])
WinSetTitle($hfrmMain,"",$sTitel & " " & $aItem[3] & " ist ausgewählt")
EndFunc ;==>Edit
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
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
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
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
; 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
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
Func _EncodeUTF8(ByRef Const $vData, $fBinary =False)
; Author: Prog@ndy
If $fBinary Then Return StringToBinary($vData,4)
Return BinaryToString(StringToBinary($vData,4),1)
EndFunc
überarbeitete Ländertabelle:
Die Flaggen befinden sich im Zip-File #1
mfg (Auto)Bert
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