Textdatei durchsuchen und falls was gefunden wird die ganze Zeile anzeigen

  • Hi,
    Ich bin dabei mir eine Koordinaten Datenbank für das Spiel Spacepioneers zu schreiben. Den Parser hab ich schon fast fertig und die Werte werden in eine Ini Datei eingetragen.
    Das Ganze sieht nun so aus:

    [autoit]

    236:28: 2=
    236:28: 3=
    236:28: 4=
    236:28: 5=
    236:28: 6=
    236:28: 7=
    236:28: 8=
    236:28: 9=
    236:28: 10= AYSXDC (i) Flotte: 0
    236:28: 11=
    236:28: 12= Lord Richi Flotte: 88240
    236:28: 13=
    236:28: 14=
    236:28: 15=
    236:28: 16=
    237:28: 1=
    237:28: 2=
    237:28: 3=
    237:28: 4=
    237:28: 5=
    237:28: 6=
    237:28: 7=
    237:28: 8= Sybille (u) Flotte: 5916816
    237:28: 9=
    237:28: 10=
    237:28: 11=
    237:28: 12=

    [/autoit]

    Nun will ich z.B. einen Spieler suchen und will das die ganze Zeile angezeigt wird damit ich auch die Flottenpunkte usw. sehe auserdem muss das ganze inifile durchsucht werden da ein Spieler mehrere Koordinaten besitzt und ich alle sehen will. Eine suche wie z.b. Zeige alle Spieler unter 1.000.000 Flottenpunkte soll auch noch hinzukommen.

    Leider habe ich Derzeit überhaupt keinen Ansatz wie ich das schreiben soll. Wie kann ich nach einen Namen suchen und dann die ganze Zeile z.B. in der Console ausgeben?

  • Ich würde sagen, dass dies der Koordination der Spieler dient, ausserhalb des Spiels, und keinen Cheat oder Bot sein dürfte. So rein nach Erfahrung dieser Browserspiele.

  • Hi,

    du könntest das ganze Dokument in ein Array einlesen (Function _FileReadToArray)

    Anschließend das Array durchsuchen (z.b. Function _ArraySearch)

    Gruß

    Prajoss

    "Never touch a running System!"

  • SQl wäre mir viel lieber auch weil man das dann im Internet mit mehreren Usern nutzen kann. Und mehrere können die Datenbank auch füttern.
    Evtl könnte man sogar ein php script schreiben und die Daten online anzeigen kann.

    Hab mich nur für die .ini entschieden weil ich keinerlei erfahrung mit SQL programmierung habe.^^

  • MySQL zu lernen lohnt sich schon :)
    auf http://dev.mysql.com/doc/refman/5.1/de/tutorial.html gibts nen nettes Tutorial (ist umfangreich ich weiß :P)
    Bevor du anfängst würde ich ein UML machen, was du in welche Tables sinnvollerweise reinbringen willst.

    Außerdem kann ich dir die UDF von Progandy dafür empfehlen, da du dort keinen ODBC Treiber brauchst sondern lediglich die .dll

    21 is only half the truth.

  • Die ganzen Zeilen erhälst du z.B. mit meiner neuen Funktion _ArrayPatternMatch.
    SQL wäre aber sicher besser.

    Spoiler anzeigen
    [autoit]

    #Include <Array.au3>
    #Include <File.au3>

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

    Local $aTest
    _FileReadToArray("filename.txt", $aTest)
    Local $aRes = _ArrayPatternMatch($aTest, "*Flotte:*")
    _ArrayDisplay($aRes)

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

    Func _ArrayPatternMatch($aArray, $sPattern)
    ;funkey May 17, 2010
    If UBound($aArray, 0) <> 1 Then Return SetError(1, 0, "") ;no 1D-array
    Local $n = UBound($aArray)
    Local $aRes[$n], $j = 0
    $sPattern = "^\Q" & $sPattern & "\E$"
    $sPattern = StringReplace($sPattern, "?", "\E.\Q")
    $sPattern = StringReplace($sPattern, "*", "\E.*\Q")
    For $i = 0 To $n - 1
    If StringRegExp($aArray[$i], $sPattern, 0) Then
    $aRes[$j] = $aArray[$i]
    $j += 1
    EndIf
    Next
    If $j = 0 Then Return SetError(2, 0, "") ;no match
    ReDim $aRes[$j]
    Return $aRes
    EndFunc

    [/autoit]
  • Also ich hab kein Plan wie ich das mit SQL machen soll.
    Ich habe mir nun die MySQL.au3 geladen aber wie soll ich das machen?

    Eintragen will ich in die Datenbank am anfang der Tabelle die Koords und dahinter den Spieler und Gesamtpunkte, Flottenpunkte, .....
    Natürlich werde koordinaten auch mal doppelt gesendet aber dann soll er die alten einfach überschreiben. und wenn auf der Koordinate mal nichts ist den Spieler der vorher dastand löschen.

    Ich stell mir SQL immer als Exel tabelle vor^^ Kein Plan wie ich das machen soll mit sowas hab ich 0 erfahrung.

  • Hab nun die mysql.au3 und die ODBC treiber geladen.

    Nun hab ich 2 zeilen geschrieben:


    [autoit]

    $sql = _MySQLConnect("root", "1234", "test", "127.0.0.1")
    _CreateTable($sql, "TEST", "key")

    [/autoit]

    kommt aber immer
    C:\Program Files\AutoIt3\Include\mysql.au3 (200) : ==> The requested action with this object has failed.:
    $oConnectionObj.execute ($str)
    $oConnectionObj.execute ($str)^ ERROR

    Hier die Mysql.au3 die ich geladen habe:

    Spoiler anzeigen
    [autoit]

    #include-once

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

    #cs
    Function Name: _MySQLConnect
    Description: Initiate a connection to a MySQL database.
    Parameter(s): $username - The username to connect to the database with.
    $password - The password to connect to the database with. $Database - Database to connect to.
    $server - The server your database is on.
    $driver (optional) the ODBC driver to use (default is "{MySQL ODBC 3.51 Driver}"
    Requirement(s): Autoit 3 with COM support
    Return Value(s): On success returns the connection object for subsequent functions. On failure returns 0 and sets @error
    @Error = 1
    Error opening connection
    @Error = 2
    MySQL ODBC Driver not installed.
    Author(s): cdkid
    #ce

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

    Func _MySQLConnect($sUsername, $sPassword, $sDatabase, $sServer, $sDriver = "{MySQL ODBC 3.51 Driver}", $iPort=3306)
    Local $v = StringMid($sDriver, 2, StringLen($sDriver) - 2)
    Local $key = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers", $val = RegRead($key, $v)
    If @error or $val = "" Then
    SetError(2)
    Return 0
    EndIf
    $ObjConn = ObjCreate("ADODB.Connection")
    $Objconn.open ("DRIVER=" & $sDriver & ";SERVER=" & $sServer & ";DATABASE=" & $sDatabase & ";UID=" & $sUsername & ";PWD=" & $sPassword & ";PORT="&$iPort)
    If @error Then
    SetError(1)
    Return 0
    Else
    Return $ObjConn
    EndIf
    EndFunc ;==>_MySQLConnect

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

    #cs
    Function name: _Query
    Description: Send a query to the database
    Parameter(s): $oConnectionObj - As returned by _MySQLConnect. $query - The query to execute
    Return Value(s):On success returns the query result. On failure returns 0 and sets @error to 1
    Requirement(s):Autoit3 with COM support
    Author(s): cdid
    #ce

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

    Func _Query($oConnectionObj, $sQuery)
    If IsObj($oConnectionObj) Then
    Return $oConnectionobj.execute ($sQuery)
    EndIf
    If @error Then
    SetError(1)
    Return 0
    EndIf

    EndFunc ;==>_Query

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

    #cs
    Function name: _MySQLEnd
    Description: Closes the database connection (see notes!)
    Parameter(s): $oConnectionObj - The connection object as returned by _MySQLConnect()
    Requirement(s):Autoit 3 with COM support
    Return Value(s):On success returns 1. On failure returns 0 and sets @error to 1
    Author(s): cdkid
    #ce

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

    Func _MySQLEnd($oConnectionObj)
    If IsObj($oConnectionObj) Then
    $oConnectionObj.close
    Return 1
    Else
    SetError(1)
    Return 0
    EndIf
    EndFunc ;==>_MySQLEnd

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

    #cs
    Function name: _AddRecord
    Description: Adds a record to the specified table
    Note(s): to add to multiple columns use an array with one blank element at the end as the $sColumn, and $value parameter
    Parameter(s): $oConnectionObj - As returned by _MySQL Connect. $sTable - The table to put the record in
    $row - The row to put the record in. $value - The value to put into the row
    $vValue - OPTIONAL default will be default for the column (will not work with array, see notes)
    Requirement(s): Autoit 3 with COM support
    Return value(s): On success returns 1. If the connectionobj is not an object returns 0 and sets @error to 2. If there is any other error returns 0 and sets @error to 1.
    Author(s): cdkid
    #ce

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

    Func _AddRecord($oConnectionObj, $sTable, $vRow, $vValue = "")
    If IsObj($oConnectionObj) Then
    $query = "INSERT INTO " & $sTable & " ("

    If IsArray($vRow) Then
    For $i = 0 To UBound($vRow, 1) - 1
    If $i > 0 And $i <> UBound($vRow, 1) - 1 Then
    $query = $query & "," & $vRow[$i] & ""
    ElseIf $i = UBound($vRow, 1) - 1 And $vRow[$i] <> "" Then
    $query = $query & "," & $vRow[$i] & ") VALUES("
    ElseIf $i = 0 Then
    $query = $query & "" & $vRow[$i] & ""
    ElseIf $vRow[$i] = "" Then
    $query = $query & ") VALUES("
    EndIf
    Next
    EndIf
    If Not IsArray($vRow) And Not IsArray($vValue) And Not IsInt($vValue) Then
    $oConnectionobj.execute ("INSERT INTO " & $sTable & " (" & $vRow & ") VALUES('" & $vValue & "')")
    return 1
    ElseIf IsInt($vValue) And Not IsArray($vRow) And Not IsArray($vValue) Then
    $oconnectionobj.execute ("INSERT INTO " & $sTable & " (" & $vRow & ") VALUES(" & $vValue & ")")
    return 1
    EndIf

    If IsArray($vValue) Then
    For $i = 0 To UBound($vValue, 1) - 1
    If $i > 0 And $i <> UBound($vValue, 1) - 1 And Not IsInt($vValue[$i]) Then
    $query = $query & ",'" & $vValue[$i] & "'"
    ElseIf $i = UBound($vValue, 1) - 1 And $vValue[$i] <> "" And Not IsInt($vValue[$i]) Then
    $query = $query & ",'" & $vValue[$i] & "');"
    ElseIf $i = 0 And Not IsInt($vValue[$i]) Then
    $query = $query & "'" & $vValue[$i] & "'"
    ElseIf $vValue[$i] = "" Then
    $query = $query & ");"
    ElseIf IsInt($vValue[$i]) And $vValue[$i] <> "" Then
    $query = $query & "," & $vValue[$i]
    EndIf
    Next
    EndIf
    If StringRight($query, 2) <> ");" Then
    $query = $query & ");"

    EndIf
    $oconnectionobj.execute ($query)
    EndIf
    If Not IsObj($oConnectionObj) Then
    SetError(2)
    Return 0
    EndIf
    If @error And IsObj($oConnectionObj) Then
    Return 0
    SetError(1)
    Else
    Return 1
    EndIf

    EndFunc ;==>_AddRecord

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

    #cs
    Function name: _DeleteRecord
    Description: Deletes a record from the specified table
    Parameter(s): $oConnectionObj - As returned by _MySQLConnect. $sTable - The table to delete from.
    $sColumn - The column to check value (see the example in the next post) $vRecordVal -
    The value to check in $sColumn (see example).
    $iLimit (optional) - the max number of record to delete if multiple match the criteria (default 1)
    Return Value(s): On success returns 1. If there $oConnectionObj is not an object returns 0 and sets @error to 1. If there are any other errors returns 0 and sets @error to 2
    Requirement(s): Autoit 3 with COM support
    #ce

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

    Func _DeleteRecord ($oConnectionObj, $sTable, $sColumn, $vRecordVal, $iLimit = 1)
    If IsObj($oConnectionObj) And Not IsInt($vRecordVal) Then
    $oconnectionobj.execute ("DELETE FROM " & $sTable & " WHERE " & $sColumn & " = '" & $vRecordVal & "' LIMIT " & $iLimit & ";")
    ElseIf IsInt($vRecordVal) Then
    $oconnectionobj.execute ("DELETE FROM " & $sTable & " WHERE " & $sColumn & " = " & $vRecordVal & " LIMIT " & $iLimit & ";")
    If Not @error Then
    Return 1
    ElseIf Not IsObj($oConnectionObj) Then
    SetError(1)
    Return 0
    ElseIf @error And IsObj($oConnectionObj) Then
    SetError(2)
    Return 0
    EndIf
    EndIf
    EndFunc ;==>_DeleteRecord

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

    #cs
    Function name: _CreateTable()
    Description: Creates a table
    Parameters: $oConnectionObj - as returned by _MySQLConnect, $sTbl - The name of the table to create, $sPrimeKey - The name of the
    primary key column. $keytype - The datatype of the primary key (default is integer), $sNotNull - "yes" = must be filled out whenever
    a record is added "no" does not need to be filled out ("yes" default). $keyautoinc - "yes" = Auto incrememnts "no" = does not.
    $sType - The table type (default is InnoDB)
    Requirements: Autoit V3 with COM support
    Return value(s): on success returns 1 on failure sets @error to 1 and returns 0
    Author: cdkid
    #ce

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

    Func _CreateTable($oConnectionObj, $sTbl, $sPrimeKey, $keytype = "INTEGER", $sNotNull = "yes", $keyautoinc = "yes", $sType = "InnoDB")
    If IsObj($oConnectionObj) And Not @error Then
    $str = "CREATE TABLE " & $sTbl & " " & "(" & $sPrimeKey & " " & $keytype & " UNSIGNED"
    If $sNotNull = "yes" Then
    $str = $str & " NOT NULL"
    EndIf

    If $keyautoinc = "yes" Then
    $str = $str & " AUTO_INCREMENT,"
    EndIf

    $str = $str & " PRIMARY KEY (" & $sPrimeKey & " )" & " ) " & "TYPE = " & $sType & ";"
    $oConnectionObj.execute ($str)
    Return 1


    ElseIf @error Then
    Return 0
    SetError(1)
    EndIf

    EndFunc ;==>_CreateTable

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

    #cs
    Function Name: _CreateColumn
    Description: Creates a column in the given table
    Requirements: AutoitV3 with COM support
    Parameters: $oConnectionObj - as returned by _MySQLConnect. $sTable - the name of the table to add the column to.
    $sAllowNull - if 'yes' then does not add 'NOT NULL' to the SQL statement (default 'yes') $sDataType - The data type of the column
    default('VARCHAR(45)'). $sAutoInc - if 'yes' adds 'AUTO_INCREMENT' to the MySQL Statement (for use with Integer types)
    default('no'). $sUnsigned - if 'yes' adds 'UNSIGNED' to the MySQL statement. default('no') $vDefault - the default value of the column
    default('')
    Author: cdkid
    #ce

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

    Func _CreateColumn($oConnectionObj, $sTable, $sColumn, $sAllowNull = "no", $sDataType = "VARCHAR(45)", $sAutoInc = "no", $sUnsigned = "no", $vDefault = '')
    If IsObj($oConnectionObj) And Not @error Then
    $str = "ALTER TABLE `" & $sTable & "` ADD COLUMN `" & $sColumn & "` " & $sDataType & " "
    If $sAllowNull = "yes" Then
    $str = $str & "NOT NULL "
    EndIf
    If $sAutoInc = 'yes' Then
    $str = $str & "AUTO_INCREMENT "
    EndIf
    If $sUnsigned = 'yes' Then
    $str = $str & "UNSIGNED "
    EndIf
    $str = $str & "DEFAULT '" & $vDefault & "';"
    $oConnectionObj.execute ($str)
    Return 1
    Else
    SetError(1)
    Return 0
    EndIf

    EndFunc ;==>_CreateColumn

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

    #cs
    Function Name: _DropCol()
    Description: Delete a column from the given table
    Requirements: AutoitV3 with COM support
    Parameters: $oConnectionObj - As returned by _MySQLConnect(). $sTable - The name of the table to delete the column from
    $sColumn - THe name of the column to delete
    Author: cdkid
    #ce

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

    Func _DropCol($oConnectionObj, $sTable, $sColumn)
    If IsObj($oConnectionObj) & Not @error Then
    $oConnectionObj.execute ("ALTER TABLE " & $sTable & " DROP COLUMN " & $sColumn & ";")
    Return 1
    ElseIf @error Then
    SetError(1)
    Return 0
    EndIf
    EndFunc ;==>_DropCol

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

    #cs
    Function Name: _DropTbl()
    Description: Deletes a table from the database
    Requirements: AutoitV3 with COM support
    Parameters: $oConnectionObj - As returned by _MySQLConnect. $sTable - The name of the table to delete
    Author: cdkid
    #ce

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

    Func _DropTbl($oConnectionObj, $sTable)
    If IsObj($oConnectionObj) And Not @error Then
    $oConnectionObj.execute ("DROP TABLE " & $sTable & ";")
    Return 1
    Else
    SetError(1)
    Return 0
    EndIf
    EndFunc ;==>_DropTbl

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

    #cs
    Function name: _CountRecords()
    Description: Get the number of records in the specified column
    Parameters: $oConnectionObj - As returned by _MySQLConnect. $sTable - The name of the table that the column is in
    $value - If not = "" then it is put in the select statement in the WHERE clause (default "")
    Return value(s): On success returns the number of records. On failure sets @error to 1 and returns 0
    Author: cdkid
    #ce
    Func _CountRecords($oConnectionObj, $sTable, $sColumn, $vValue = '')
    If IsObj($oConnectionObj) And Not @error Then

    If $sColumn <> "" And $vValue <> "" And Not IsInt($vValue) Then
    $constr = "SELECT " & $sColumn & " FROM " & $sTable & " WHERE " & $sColumn & " = '" & $vValue & "'"
    ElseIf $sColumn <> "" And $vValue = '' And Not IsInt($vValue) Then
    $constr = "SELECT " & $sColumn & " FROM " & $sTable
    ElseIf IsInt($vValue) And $sColumn <> '' And $vValue <> '' Then
    $constr = "SELECT " & $sColumn & " FROM " & $sTable & " WHERE " & $sColumn & " = " & $vValue
    EndIf
    $sql2 = ObjCreate("ADODB.Recordset")
    $sql2.cursorlocation = 3
    $sql2.open ($constr, $oConnectionObj)
    With $sql2
    $ret = .recordcount
    EndWith
    $sql2.close
    Return $ret
    Else
    SetError(1)
    Return 0
    EndIf
    EndFunc ;==>_CountRecords

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

    #cs
    Function name: _CountTables
    Description: Counts the number of tables in the database
    Parameter(s): $oConnectionObj - As returned by _MySQLConnect
    Return value(s): if error - returns 0 and sets @error to 1. on success returns the number of tables in the database
    Author: cdkid
    #ce

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

    Func _CountTables($oConnectionObj)
    If IsObj($oConnectionObj) Then
    $quer = $oConnectionObj.execute ("SHOW TABLES;")
    $i = 0
    With $quer
    While Not .EOF
    $i = $i + 1
    .MoveNext
    WEnd
    EndWith
    Return $i
    EndIf
    If @error Then
    SetError(1)
    Return 0
    EndIf

    EndFunc ;==>_CountTables

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

    #cs
    Function name: _GetColNames
    Description: Get's the names of all columns in a specified table
    Parameters: $oConnectionObj - As returned by _MySQLConnect. $sTable - The name of the table to get the column names from
    Return values: On success returns an array where $array[0] is the number of elements in the array and all the rest are column names.
    On failure returns 0 and sets @error to 1
    Author: cdkid
    #ce
    Func _GetColNames($oConnectionObj, $sTable)
    If IsObj($oConnectionObj) And Not @error Then
    Dim $ret[1], $rs

    $rs = $oConnectionObj.execute ("SHOW COLUMNS FROM " & $sTable & ";")

    With $rs
    While Not .EOF

    ReDim $ret[UBound($ret, 1) + 1]
    $ret[UBound($ret, 1) - 1] = $rs.Fields (0).Value
    .MoveNext
    WEnd
    EndWith
    $ret[0] = UBound($ret, 1) - 1
    Return $ret
    EndIf
    If @error Then
    Return 0
    SetError(1)
    EndIf
    EndFunc ;==>_GetColNames

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

    #cs
    Function name: _GetTblNames
    Description: Gets the names of all tables in the database
    Parameters: $oConnectionObj - As returned by _MySQLConnect
    Return value(s): On success returns an array where $array[0] is the number of tables and $array[n] is the nth table's name
    on failure - returns 0 and sets @error to 1
    Author: cdkid
    #ce

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

    Func _GetTblNames($oConnectionObj)
    If IsObj($oConnectionObj) Then
    Dim $ret[1]
    $quer = $oConnectionObj.execute ("SHOW TABLES;")
    With $quer
    While Not .eof
    ReDim $ret[UBound($ret, 1) + 1]
    $ret[UBound($ret, 1) - 1] = .fields (0).value
    .movenext
    WEnd
    EndWith
    $ret[0] = UBound($ret, 1) - 1
    Return $ret
    EndIf
    EndFunc ;==>_GetTblNames

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

    #cs
    Function name: _GetColVals
    Description: Gets all of the values of a specified column in a specified table
    Parameters: $oConnectionObj - As returned by _MySQLConnect(), $sTable - the table that the column is in
    $sColumn - the column to get values from.
    Return value(s): On success returns an array where $array[0] is the number of values and $array[n] is the Nth value
    On failure sets @error to 1 and returns 0
    Author: cdkid
    #ce

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

    Func _GetColVals($oConnectionObj, $sTable, $sColumn)
    If IsObj($oConnectionObj) Then
    Dim $ret[1]
    $quer = $oConnectionObj.execute ("SELECT " & $sColumn & " FROM " & $sTable & ";")
    With $quer
    While Not .EOF
    ReDim $ret[UBound($ret, 1) + 1]
    $ret[UBound($ret, 1) - 1] = .Fields (0).value
    .MoveNext
    WEnd
    EndWith
    $ret[0] = UBound($ret, 1) - 1
    Return $ret
    EndIf
    EndFunc ;==>_GetColVals

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

    #cs
    Function name: _GetColCount
    Description: Gets the number of columns in the specified table
    Parameters: $oConnectionObj - As returned by _MySQLConnect(). $sTable - the table to count the columns in
    Return Value(s): On success returns the number of columns in the table. On failure returns -1 and sets @error to 1
    Author: cdkid
    #ce
    Func _GetColCount($oConnectionObj, $sTable)
    If IsObj($oConnectionObj) Then
    $quer = $oConnectionObj.execute ("SHOW COLUMNS IN " & $sTable)
    With $quer
    $i = 0
    While Not .eof
    $i = $i + 1
    .movenext
    WEnd
    EndWith
    Return $i
    EndIf
    If @error Then
    Return -1
    SetError(1)
    EndIf

    EndFunc ;==>_GetColCount

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

    #cs
    Function name: _GetColType
    Description: Gets the DATA TYPE of the specified column
    Parameters: $oConnectionObj - As returned by _MySQLConnect(). $sTable - the table that the column is in. $sColumn - the column
    to retrieve the data type from.
    Return value(s): On success returns the data type of the column. On failure returns 0 and sets @error to 1
    Author: cdkid
    #ce
    Func _GetColType($oConnectionObj, $sTable, $sColumn)
    If IsObj($oConnectionObj) Then
    $quer = $oConnectionObj.execute ("SHOW COLUMNS IN " & $sTable)
    With $quer
    $i = 0
    While Not .eof
    If .fields (0).value = $sColumn Then
    $ret = .fields (1).value
    EndIf
    .MoveNext
    WEnd
    EndWith
    Return $ret
    EndIf
    If @error Then
    Return 0
    SetError(1)
    EndIf
    EndFunc ;==>_GetColType

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

    #cs
    Function: _GetDBNames
    Description: Get a count and list of all databases on current server.
    Parameters: $oConObj - As returned by _MySQLConnect
    Return Value(s): Success - An array where $array[0] is the number of databases and $array[n] is the nth database name.
    Failure - -1 and sets @error to 1
    Author: cdkid
    #ce
    Func _GetDBNames($conobj)
    If IsObj($conobj) Then
    Local $arr[1], $m
    $m = $conobj.Execute ("SHOW DATABASES;")
    With $m
    While Not .eof
    ReDim $arr[UBound($arr, 1) + 1]
    $arr[UBound($arr, 1) - 1] = .Fields (0).Value
    .MoveNext
    WEnd
    EndWith
    $arr[0] = UBound($arr, 1) - 1
    Return $arr
    Else
    SetError(1)
    Return -1
    EndIf
    EndFunc ;==>_GetDBNames

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

    #cs
    Function: _ChangeCon
    Description: Change your connection string
    Parameters:
    $oConnectionObj
    As returned by _MySQLConnect
    $username
    OPTIONAL: the new username to use
    If omitted, the same username will be used.
    $password
    OPTIONAL: the new password to use
    If omitted, the same password will be used.
    $database
    OPTIONAL: the new database to connect to
    If omitted, the same database will be used.
    $driver
    OPTIONAL: the new driver to use
    If omitted, the MySQL ODBC 3.51 DRIVER will be used.
    $server
    OPTIONAL: the new server to connect to
    If omitted, the same server will be used.
    $iPort
    OPTIONAL: the new port to be used to connect
    if omitted, the default port (3306) will be used
    Return Value:
    On success, a new connection object for use with subsequent functions.
    On failure, -1 and sets @error to 1
    Author: cdkid
    #ce

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

    Func _ChangeCon($oConnectionObj, $username = "", $password = "", $database = "", $driver = "", $server = "", $iPort = 0)
    Local $constr, $db, $usn, $pwd, $svr
    If IsObj($oConnectionObj) Then
    $constr = $oConnectionObj.connectionstring
    $constr = StringReplace($constr, 'Provider=MSDASQL.1;Extended Properties="', '')
    $constr = StringSplit($constr, ";")
    For $i = 1 To $constr[0]
    If StringLeft($constr[$i], 3) = "UID" Then
    If $username <> "" Then
    $usn = $username
    Else
    $usn = StringMid($constr[$i], 5)
    EndIf
    $usn = StringTrimRight($usn, 1)
    EndIf
    If StringLeft($constr[$i], 3) = "PWD" Then
    If $password <> "" Then
    $pwd = $password
    Else
    $pwd = StringMid($constr[$i], 5)
    EndIf
    EndIf
    If StringLeft($constr[$i], 8) = "DATABASE" Then
    If $database <> "" Then
    $db = $database
    Else
    $db = StringMid($constr[$i], 10)
    EndIf
    EndIf
    If StringLeft($constr[$i], 6) = "SERVER" Then
    If $server <> "" Then
    $svr = $server
    Else
    $svr = StringMid($constr[$i], 8)
    EndIf
    EndIf
    If StringLeft($constr[$i], 6) = "DRIVER" Then
    If $driver <> "" Then
    $dvr = $driver
    Else
    $dvr = "{MySQL ODBC 3.51 DRIVER}"
    EndIf
    EndIf
    If StringLeft($constr[$i], 4) = "PORT" Then
    if $iport <> 0 Then
    $port = $iport
    Else
    $port = 3306
    EndIf
    EndIf
    Next
    $oConnectionObj.close
    $oConnectionObj.Open ("DATABASE=" & $db & ";DRIVER=" & $dvr & ";UID=" & $usn & ";PWD=" & $pwd & ";SERVER=" & $svr & ";PORT=" & $port & ";")
    Return $oConnectionObj
    Else
    SetError(1)
    Return -1
    EndIf
    EndFunc ;==>_ChangeCon

    [/autoit]
  • Wie ich schon gesagt habe, lade dir am besten die UDF von Progandy klick mich!
    Damit ersparst du dir die ODBC Treiber!

    Lediglich die libmysql.dll benötigst du dann.

    Zum herstellen der Verbindung machst du dann einfach folgendes

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <mysql.au3>

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

    Dim Const $sDbserver = 'localhost'
    Dim Const $sDbuser = 'root'
    Dim Const $sDbpassword = 'wasauchimmer'
    Dim Const $sDbname = 'deinedb'

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

    _MySQL_InitLibrary()
    If @error Then
    TrayTip('Error','libmysql.dll konnte nicht gefunden werden',10,3)
    Sleep(10000)
    Exit
    EndIf
    $MysqlConn = _MySQL_Init()
    $connected = _MySQL_Real_Connect($MysqlConn, $sDbserver, $sDbuser, $sDbpassword, $sDbname)
    $hSQLping = _MySQL_Ping($MysqlConn)
    If $hSQLping = 1 Or $hSQLping = 3 Then
    TrayTip('Error','Verbindung zur Datenbank konnte nicht hergestellt werden',10,3)
    Sleep(10000)
    Exit
    EndIf

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

    Und lies dir, wenn du dich nicht mit SQL auskennst bitte http://dev.mysql.com/doc/refman/5.1/de/tutorial.html durch, ich weiß das es ne menge ist, aber ohne irgendwelche Kenntnisse mit Datenbanken zu arbeiten ist nicht gerade sinnvoll...
    Dann kannst du genauso gut mit Excel arbeiten.

    21 is only half the truth.

  • Also hab ich das richtig verstanden in diesen Tutorial?

    _MySQL_Query($MySQL_ptr, "CREATE TABLE test (test1 VARCHAR(20), test2 VARCHAR(20), test3 VARCHAR(20), test4 CHAR(1), Datum DATE;")