Hallo Community als ich letztens an einen Projekt saß was viel mit Ini's und aktualisierung von Werten zu tun hatte wollte ich nciht mehr mit Ini's arbeiten und habe eine AZI UDF geschrieben AZI bedeutet "Alternative zu Ini" erstmals habe ich sie geschrieben weil ich eienn einfachen Abruf übers Internet brauchte.
Funktionen:
Spoiler anzeigen
_AZI_InetRead
_AZI_Read
_AZI_Write
_AZI_DeleteEntry
Code:
Spoiler anzeigen
#include <File.au3>
#include <String.au3>
#include <Array.au3>
#include <INet.au3>
#cs
Das hier ist die AZI UDF AZI steht für "Alternative zu Ini" da ich es satt hatte
Ini's zu nutzen habe ich diese UDF geschrieben das Dateiformat ähnelt XML ist es
aber nicht außerdem kann man AZI übers Internet abrufen was vom großen Voteil
ist wenn man einen Login machen will
#ce
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#cs
Functions:
_AZI_InetRead
_AZI_Read
_AZI_Write
_AZI_DeleteEntry
#ce
[/autoit] [autoit][/autoit] [autoit]#cs
Function: _AZI_InetRead
Parameter:-$url(URL zu der HTML Datei wo die Werte drinenstehen)
-$name(Den Namen des Wertes den man auslesen will)
#ce
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _AZI_INetRead($url,$name)
[/autoit] [autoit][/autoit] [autoit]$save = _INetGetSource($url)
FileWrite(@TempDir & "temp.hfdsahlfslaf",$save)
Local $working
_FileReadToArray(@TempDir & "temp.hfdsahlfslaf",$working)
FileDelete(@TempDir & "temp.hfdsahlfslaf")
For $i = 1 to $working[0]
$currentstr = $working[$i]
$result = StringInStr($currentstr,"name=." & $name & ".")
If $result <> 0 THen
$cworking = $currentstr
ExitLoop
EndIf
Next
$name = _StringBetween($cworking,"name=.",".")
$typ = _StringBetween($cworking,"typ=.",".")
$trenner = "<entry name=." & $name[0] & ". typ=." & $typ[0] & ".>"
$ausgabe1 = _StringBetween($cworking,$trenner,"</entry>")
$ausgabestr = String($ausgabe1[0])
$ausgabeint = Number($ausgabe1[0])
Switch $typ[0]
[/autoit] [autoit][/autoit] [autoit]Case "int"
Return $ausgabeint
Case "str"
Return $ausgabestr
Case "bool"
Return $ausgabeint
Case Else
SetError(3)
EndSwitch
EndFunc
#cs
Function: _AZI_Read
Parameter:-$azifile(Pfad zu der AZI Datei wo die Werte drinenstehen)
-$name(Den Namen des Wertes den man auslesen will)
#ce
Func _AZI_Read($azifile,$name)
Local $working
_FileReadToArray($azifile,$working)
For $i = 1 to $working[0]
$currentstr = $working[$i]
$result = StringInStr($currentstr,"name=." & $name & ".")
If $result <> 0 THen
Global $cworking = $currentstr
ExitLoop
EndIf
Next
$name = _StringBetween($cworking,"name=.",".")
$typ = _StringBetween($cworking,"typ=.",".")
$trenner = "<entry name=." & $name[0] & ". typ=." & $typ[0] & ".>"
$ausgabe1 = _StringBetween($cworking,$trenner,"</entry>")
$ausgabe = $ausgabe1[0]
$ausgabestr = String($ausgabe1[0])
$ausgabeint = Number($ausgabe1[0])
Switch $typ[0]
[/autoit] [autoit][/autoit] [autoit]Case "int"
Return $ausgabeint
Case "str"
Return $ausgabestr
Case "bool"
Return $ausgabeint
Case Else
SetError(3)
EndSwitch
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]#cs
Function: _AZI_Write
Parameter:-$azifile(Pfad zu der AZI Datei wo die Werte drinenstehen)
-$name(Den Namen des Wertes den man erstellen will)
-$typ(Typ des Wertes(int,bool,str))
-$value(Den Wert den man erstellen will)
#ce
Func _AZI_Write($azifile,$name,$typ,$value)
FileWriteLine($azifile,"<entry name=." & $name & ". typ=." & $typ & ".>" & $value & "</entry>")
Return 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]#cs
Function: _AZI_DeleteEntry
Parameter:-$azifile(Pfad zu der AZI Datei wo die Werte drinenstehen)
-$name(Den Namen des Wertes den man löschen will)
#ce
Func _AZI_DeleteEntry($azifile,$name)
Local $working
_FileReadToArray($azifile,$working)
For $i = 1 to $working[0]
$currentstr = $working[$i]
$result = StringInStr($currentstr,"name=." & $name & ".")
If $result <> 0 THen
Global $i
ExitLoop
EndIf
Next
_FileWriteToLine($azifile,$i,"",1)
[/autoit] [autoit][/autoit] [autoit]Endfunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]Ich suche noch viele Ideen für Funktionen würde mich auf Feedback und Vorschläge freuen