XML Datenbank

  • Hi,

    ich hatte langeweile also bastelte ich mir eine XML Datenbank UDF.
    Sie hat wenige Funktionen aber dies erleichtert auch die arbeit mit ihr ;)

    viel spaß damit :)

    Bitte bewerten

    XML.au3 UDF:

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    #include <File.au3>
    Local $Datenbank, $Datenbank_Name, $Delete, $Error, $i, $i2, $Mode, $Nummer, $TMP_Open, $TMP_Speicher, $Variable, $Version, $Wert

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

    ;;_XML_Create --- Erzeugt eine Datenbank
    ;

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

    ; $Datenbank_Name Pfad zur Datenbank
    ; $Mode Modus für FileOpen
    ; $Version Datenbank Version

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

    Func _XML_Create($Datenbank_Name, $Mode = 2, $Version = '1.0')
    $Datenbank = FileOpen($Datenbank_Name, $Mode)
    If @error Then $Error = 1
    FileWriteLine($Datenbank, '<Version>' & $Version & '</Version>')
    FileWriteLine($Datenbank, '<Nummer>1</Nummer>')
    If @error Then $Error = @error
    FileClose($Datenbank)
    Return $Error
    EndFunc ;==>_XML_Create

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

    ;;; _XML_Write --- Schreibt einen NEUEN Wert in die Datenbank

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

    ; $Datenbank_Name Pfad zur Datenbank
    ; $Wert Wert der Variable in der datenbank
    ; Return: Einortnungs Nummer

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

    Func _XML_Write($Datenbank_Name, $Wert)
    $Nummer = _XML_Read($Datenbank_Name, 'Nummer')
    FileWriteLine($Datenbank_Name, '<' & $Nummer & '>' & $Wert & '</' & $Nummer & '>')
    _XML_Set($Datenbank_Name, 'Nummer', $Nummer + 1)
    Return $Nummer + 1
    EndFunc ;==>_XML_Write

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

    ;;; _XML_Read --- Liest einen wert aus der datenbank aus

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

    ; $Datenbank_Name Pfad zur Datenbank
    ; $Variable Name der Variable
    Func _XML_Read($Datenbank_Name, $Variable)
    $Datenbank = FileRead($Datenbank_Name)
    $Wert = _StringBetween($Datenbank, '<' & $Variable & '>', '</' & $Variable & '>')
    If @error Then
    Return @error
    Else
    Return $Wert[0]
    EndIf
    EndFunc ;==>_XML_Read

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

    ;;; _XML_Set Ändert einen wert oder Löscht diesen

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

    ; $Datenbank_Name Pfad zur Datenbank
    ; $Variable Name der variable
    ; $Wert Neuer Wert
    ; $Delete bei 1 wird der Eintrag gelöscht
    Func _XML_Set($Datenbank_Name, $Variable, $Wert = '', $Delete = 0)
    $TMP_Open = FileOpen($Datenbank_Name)
    $i = _FileCountLines($Datenbank_Name)
    $i2 = 0
    Do
    $i2 = $i2 + 1
    $Datenbank = FileReadLine($TMP_Open, $i2)
    $TMP_Speicher = StringSplit($Datenbank, '>')
    $TMP_Speicher = StringSplit($TMP_Speicher[1], '<')
    If $TMP_Speicher[2] = $Variable Then
    If Not $Delete = 1 Then FileWriteLine('___' & $Datenbank_Name & '___.tmp', '<' & $Variable & '>' & $Wert & '</' & $Variable & '>')
    Else
    FileWriteLine('___' & $Datenbank_Name & '___.tmp', $Datenbank)
    EndIf
    Until $i2 == $i
    $TMP_Open = FileOpen($Datenbank_Name, 2)
    FileWrite($TMP_Open, FileRead('___' & $Datenbank_Name & '___.tmp'))
    FileClose($TMP_Open)
    FileDelete('___' & $Datenbank_Name & '___.tmp')
    EndFunc ;==>_XML_Set

    [/autoit]

    Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <XML.au3>
    _XML_Create('TEST.txt')
    _XML_Write ('Test.txt','123123')
    _XML_Write ('Test.txt','Hallo Welt ^^')
    MsgBox (0,'',_XML_Read ('test.txt','2'))

    [/autoit]
  • Schöne UDF.
    Wollte die letzten tage auch ne XML UDF machen, aber nachdem ich auch beim 6.ten Versuch net mehr weiter wusste hab
    ichs aufgegeben xD
    Trotzdem, funktioniert gut.
    MfG. PrideRage

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.