Datei an einem bestimmten Punkt auslesen

  • Hallo,
    ich steh mal wieder aufm Schlauch...

    Ich hab ne XML mit folgendem Inhalt:

    XML
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE FeatureLicense SYSTEM "feature.dtd">
    <FeatureLicense appName="GoPal Navigator" appVersion="5.0" editionName="PE" master="yes" vendor="MEDION" vendor-URL="http://www.medion.com/gopal-reg" version="1.0"/>

    Was ich aus dieser Datei brauche und veränderlich ist sind folgende Einträge:

    appVersion="5.0"

    editionName="PE"

    Von beiden Einträgen benötige ich allerdings NUR die Einträge in den Anführungszeichen, also in diesem Fall 5.0 und PE...

    Hülfäää... hab da ein echtes Brett vorm Kopf und bräuchte eure Unterstützung büdde...

    Gruß
    Pitter

    Gruß
    Pitter

    Einmal editiert, zuletzt von Pitter (9. Juni 2011 um 23:52)

  • Autsch...
    Da hätte ich auch selber drauf kommen können...

    Mal sehen, ob ich das gebacken bekomme. Wenn nicht, habt Ihr mich wieder am Hacken... ;)

    Danke erst mal
    Pitter

    Gruß
    Pitter

  • Das ganze lässt sich mit StringRegEx wunderbar lösen.

    [autoit]


    #include "Array.au3"

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

    Local $sString, $sAppVersion, $sEditName

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

    $sString='<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE FeatureLicense SYSTEM "feature.dtd"><FeatureLicense appName="GoPal Navigator" appVersion="5.0" editionName="PE" master="yes" vendor="MEDION" vendor-URL="http://www.medion.com/gopal-reg" version="1.0"/>'

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

    $sAppVersion = StringRegExp($sString, 'appVersion=\"(\d*\.\d*)\"',3)
    If IsArray($sAppVersion)Then
    $sAppVersion = $sAppVersion[0]
    EndIf

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

    $sEditName = StringRegExp($sString, 'editionName=\"(\w*)\"',3)
    If IsArray($sEditName)Then
    $sEditName = $sEditName[0]
    EndIf

    [/autoit][autoit][/autoit][autoit][/autoit]
  • oder mit

    [autoit]

    Dim $TextString = '<?xml version="1.0" encoding="UTF-8"?>' & @CRLF & _
    '<!DOCTYPE FeatureLicense SYSTEM "feature.dtd">' & _
    '<FeatureLicense appName="GoPal Navigator" appVersion="5.0" ' & _
    'editionName="PE" master="yes" vendor="MEDION" ' & _
    'vendor-URL="http://www.medion.com/gopal-reg" version="1.0"/>'

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

    MsgBox(4096,"Erste Suche",StringMid($TextString,StringInStr($TextString,'appVersion') + 12,3))
    MsgBox(4096,"Zweite Suche",StringMid($TextString,StringInStr($TextString,'editionName') + 13,2))

    [/autoit]

    ggf. die Anführungszeichen mit Einbeziehen - um wechselne Längen zu berücksichtigen