Hej! detta kanske hjälper dig? Det funkar ju iofs att göra så också men jag tänkte att eftersom men nu har en xml-fil borde det ju gå att göralite smidigare kanske? Jag löste det på detta vis:Läsa från XML
Nu har jag försökt och försökt och sökt och sökt men får det inte att fungera :(
Jag har en fil som ser ut på detta vis (den är dock lite nerbantad, det är config-filen till myHTPC):
<code>
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration Version="21">
<General>
<RemoteControl Receiver="" Port="COM1" KeyDelay="200">
<Buttons>
<RemoteButton Code="UP" IRString="" Key="38" />
<RemoteButton Code="DOWN" IRString="" Key="40" />
<RemoteButton Code="RIGHT" IRString="" Key="39" />
<RemoteButton Code="LEFT" IRString="" Key="37" />
</Buttons>
</RemoteControl>
</General>
</Configuration>
</code>
Det jag vill är att få ut Key ur RemoteButton med Code="UP" och Code="RIGHT", jag vill alltså få ut 38 och 39.
Någon vänlig själ som kan hjälpa mig?
Tack på förhand!!!Sv: Läsa från XML
<code>
Dim strStr As String, strStr2$
Dim strUp$, strRight$, lngPos As Long
Open App.Path & "\text.txt" For Binary As #1
strStr = String(LOF(1), " ")
Get #1, , strStr
strStr2 = "<RemoteButton Code=""UP"" IRString="""" Key="
lngPos = InStr(1, strStr, strStr2, 0)
strUp = Mid(strStr, lngPos + 41, 2)
strStr2 = "<RemoteButton Code=""RIGHT"" IRString="""" Key="
lngPos = InStr(1, strStr, strStr2, 0)
strRight = Mid(strStr, lngPos + 44, 2)
MsgBox "UP= " & vbTab & strUp & vbCrLf & "Right= " & vbTab & strRight
Close #1
</code>Sv: Läsa från XML
Sv: Läsa från XML
<code>
Dim xmld As New DOMDocument
If xmld.Load("C:\Program\myHTPC\myHTPC.cfg") Then
If xmld.parsed = True Then
Dim NodeList As IXMLDOMNodeList, i As Integer, Node As IXMLDOMElement
Set NodeList = xmld.selectNodes("//General/RemoteControl/Buttons")
If NodeList.Length > 0 Then
With NodeList.Item(0).childNodes
For i = 0 To .Length - 1
Select Case UCase(.Item(i).Attributes.getNamedItem("Code").Text)
Case "UP": sKeyUP = .Item(i).Attributes.getNamedItem("Key").Text
Case "DOWN": sKeyDown = .Item(i).Attributes.getNamedItem("Key").Text
Case "LEFT": sKeyLeft = .Item(i).Attributes.getNamedItem("Key").Text
Case "RIGHT": sKeyRight = .Item(i).Attributes.getNamedItem("Key").Text
Case "SELECT": sKeySelect = .Item(i).Attributes.getNamedItem("Key").Text
End Select
Next
End With
End If
Set NodeList = Nothing
End If
Else
With xmld.parseError
MsgBox .errorCode & " " & .reason & vbCrLf & .srcText & " on line " & .Line, vbExclamation
End With
End If
</code>
Kasnke inte det bäste och effektivaste men det verkar iallafall funka :)