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
#include <String.au3>
#include <File.au3>
Local $Datenbank, $Datenbank_Name, $Delete, $Error, $i, $i2, $Mode, $Nummer, $TMP_Open, $TMP_Speicher, $Variable, $Version, $Wert
;;_XML_Create --- Erzeugt eine Datenbank
;
; $Datenbank_Name Pfad zur Datenbank
; $Mode Modus für FileOpen
; $Version Datenbank Version
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
;;; _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
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
;;; _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
;;; _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
Beispiel:
Spoiler anzeigen
#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'))