Zwei .ini-Files vergleichen, einzelne Werte überprüfen und ein anderen Wert kopieren und ersetzen

  • VBScript

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Zwei .ini-Files vergleichen, einzelne Werte überprüfen und ein anderen Wert kopieren und ersetzen

    Hallo zusammen,

    vorab schon mal: Ich bin ein blutiger Anfänger was VBS angeht. Also nimmt es mir bitte nicht übel falls ich etwas falsch formuliere u.o.ä..

    Ich soll für meinen Chef ein VBScript schreiben, welches aus 2 Teilen besteht. Der erste Teil besteht daraus, dass ich Werte aus der Registry auslese und in eine .ini-File abspeichere. Das hab ich auch soweit geschafft. Der zweite Teil besteht daraus, dass ich eine .ini-File (File1) einlese, aus der neuerstellten .ini-File (File2) einen Wert ausliest, ihn vergleicht und ersetzt. Da ich selbst gerade Probleme habe es zu beschreiben, hier ein Beispiel:

    Quellcode

    1. File1.ini (zuvor schon definiert)
    2. [AutoUpdate]
    3. 0=Automatische Updates sind deaktiviert.
    4. 1=Automatische Updates sind aktiviert.

    Quellcode

    1. File2.ini (neu erstellt, nach auslesen der Registry)
    2. [AutoUpdate]
    3. AutoUpdate=1

    Erst soll der Wert nach dem " = " (Istgleich-Zeichen) eingelesen werden und überprüft werden aus der File1.ini welchen Wert dahinter steht. Diesen Wert (nach dem Istgleich-Zichen) dann entsprechend kopieren und in File2.ini austauschen. Das Resultat soll wiefolgt aussehen:

    Quellcode

    1. File2.ini
    2. [AutoUpdate]
    3. AutoUpdate=Automatische Updates sind aktiviert.


    Ich sitze nun seit paar Tagen daran...komme nicht voran und mir raucht um ehrlich zu sein der Kopf. Ich lese Foren durch, les mir Funktionen durch, probiere alles aus, aber ich komm nicht auf das gewünschte Ergebnis, da ich es ums verrecken nicht schaffe, den Wert nach dem Istgleich auszulesen, diesen zu vergleichen und der dahinter steckende Wert zu kopieren und zu ersetzen.

    Sorry, wenn ich mich jetzt wiederholt habe, aber ich bin am Ende meines nicht vorhandenen Lateins. Ich habe den größten Respekt vor den Leuten, die das aus dem Ärmel schütteln.

    Lange Rede kurzer Sinn: Hat jemand einen Lösungsansatz für mich?

    Danke schon mal im Voraus.

    Gruß Pfuscher
    Willkommen im Forum.
    Stichwort Split():

    Visual Basic-Quellcode

    1. Dim DeineTextzeile
    2. DeineTextzeile = "0=Automatische Updates sind deaktiviert."
    3. Dim DerTeilHinterDemIstgleich
    4. DerTeilHinterDemIstgleich = Split(DeineTextzeile, "=")(1)
    5. MsgBox DerTeilHinterDemIstgleich
    Ergibt Automatische Updates sind deaktiviert. Mit dem Split kannst Du also Deine Textzeilen auseinandernehmen. Reich das als Ansatz?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Danke schon mal für die rasche Antwort.

    Ich hab es soweit verstanden was "split()" macht. Was ich geschrieben habe, war jetzt ein Beispiel mit zwei Antwortmöglichkeiten (0 und 1). Ich habe jedoch auch Registrykeys, die 1-180 Möglichkeiten anbietet einzustellen. Daher habe ich auch zuvor geschrieben, dass eine Überprüfung unter den einzelnen (gleichnamigen) Sektionen hier nicht verkehrt wäre. Sprich:

    Überprüfung von file2.ini zu file1.ini
    [AutoUpdate] = [AutoUpdate]
    Dann den Wert HinterDemIstgleich auslesen (denke mal mit split), diesen als Parameter setzen und auf file1.ini unter der entsprechenden Sektion überprüfen. Den gefundenen Wert dahinter kopieren (wahrscheinlich wieder mit split wegen TextHinterDemIstgleich) und dann in file2.ini den zuvor definierten Parameter ersetzen.

    Ich habe jetzt hier den Begriff "Parameter" verwendet. Falls das Wort hierfür falsch ist, tut mir das Leid.

    Die Einbindung der zweiten .ini-File und die Überprüfung der einzelnen Sektionen kann ich ja jetzt nicht mit split() lösen oder? Ansonsten habe ich doch nicht verstanden, was der Befehl macht...

    Danke dir nochmals für deine Hilfe.

    Gruß Pfuscher (ich glaub ich mache meinem Namen alle Ehre...)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Pfuscher“ ()

    Probier es aus und berichte. Ansonsten gebe ich Dir noch Replace() an die Hand.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.