Hallo
Leider muss ich mich als weitestgehend unerfahren hinsichtlich Programmierung outen und benötige Hilfe.
Vor lauter Bäume sehe ich den Wald nicht mehr
Ich verstehe nicht wie ich meiner Funktion beibringen kann im setting.xml File nach dem Wert der Variable zu suchen, anschliessend den Wert von
Host Port und im dritten Schritt den Wert Host IP auszulesen resp. in Variablen abzufüllen.
- im ersten Schritt lese ich einen Registry Key aus und belege damit eine Variable $MM_LastPopUsed
Global $MM_LastPopUsed = RegRead("HKEY_CURRENT_USER\Software\Vendor\Prod\Platform", "LastPopIdUsed") --> hat bspw. Wert = ID_1 (kann aber auch ID_2 / ID_3 etc. sein)
- anschliessend versuche ich eine Funktion zu erzeugen welche
- 1. den Inhalt von $MM_LastPopUsed (also ID_1) im setting.xml File sucht, danach
- 2. wenn dieser String ID_1 vorhanden/gefunden ist, den dazugehörigen Wert von <Hosts port="4444">
- 3. den nachfolgenden Wert von <Host ip="Servermain"/> ausliest
letztendlich benötige ich zwei abgefüllte Variablen mit den Werten des Ports und der Host IP (also 4444 und Servermain als Beispiel)
Auszug aus dem setting.xml File
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Configuration>
<AppSettings>
<DefaultPop pop_id="Id_3"/>
<Pops>
<Pop name="ServerA" id="Id_3" source="User">
<Hosts port="4555">
<Host ip="servera"/>
</Hosts>
</Pop>
<Pop name="ServerB" id="Id_2" source="User">
<Hosts port="5555">
<Host ip="Server"/>
</Hosts>
</Pop>
<Pop id="Id_1" name="ServerMain" source="User">
<Hosts port="4444">
<Host ip="Servermain"/>
...............
................................
Meine Versuche der Funktion sind bisher kläglich gescheitert, ich verstehs einfach noch nicht und die Hilfe verwirrt mich noch mehr
func _File_Read_XML_PORT-Host()
Local $line = FileRead($file)
if StringInStr ( $line, “$MM_LastPopUsed ") > 0 Then
$posStart=StringInStr ( $line, $sPoPIst) + 11
$posEnd=StringInStr ( $line, " id" , 0, 1) -1
$sPoPIst=StringMid ( $line, $posStart , $posEnd - $posStart )
MsgBox(0, "Pop Ist", "Name ist" & $sPoPIst )
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $strDefaultPop = ' & $sPoPIst & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
EndIf
Ich bin mir durchaus bewusst das ich nicht erwarten kann eine Schlüsselfertige Lösung präsentiert zu erhalten, es würde mich aber sehr freuen
wenn ich den einen oder anderen Tipp erhalten würde, welcher mir erklären würde wie ich das lösen kann.
Besten Dank und Gruss
Thork