Inhalt von ini Dateien ändern

flapsch20

Lieutenant
Registriert
Juli 2010
Beiträge
735
Ich möchte in diversen ini Dateien verschiedene Textblöcke ersetzen. Diese stehen nicht immer an derselben Stelle (Zeile), was das Ganze schwieriger macht.

Um es genauer zu sagen, haben wir ini Dateien, über welche die Drucker mit dem PC verbunden werden. Wenn ich jetzt einen Etagendrucker ersetze, muss ich x ini Dateien öffnen, um den Eintrag zu ersetzen.

Mit UltraEdit klappt das Ersetzen sehr gut, aber leider nur, wenn der Textblock, welchen ich ersetzen muss, immer auf der gleichen Zeile ist. Wenn ich aber nun mehrere inis habe, bei denen der Drucker auf der Zeile 4 oder 10 oder wie auch immer steht, findet es UltraEdit nicht.

Hat jemand von euch solche Sachen ebenfalls machen müssen und hätte eine Lösung?

Danke für die Hilfe.
 
Könnte man sicherlich über ein UltraEdit-Makro umsetzen. Man muß dann wohl eher die Suchen und Ersetzen-Funktion von UltraEdit bemühen.
 
Das .Net Framework stellt komfortable Lösungen parat in ini Dateien

ini values anhand ihrer
ini section &
ini item

zu bearbeiten.

Ein Programmierer oder jemand mit geringen Programmierkenntnissen in eurer Firma kann dir da schnell ein Kommandozeilenprogramm schreiben, welches du nur aufrufen mußt, oder eben in deine Workflows einbauen kannst.

Es gibt aber mit Sicherheit auch fertige kostenlose ini Editoren im Netz.
 
Notepad ++ habe ich schon ausprobiert, aber dort kann ich nur Zeilenweise ersetzen.
Wenn ich ganze Blöcke einfügen will, checkt er dies nicht.

Regexp?

Diese Übersicht habe ich schon ausprobiert, aber irgendwie klappt das nicht.
 

Anhänge

  • 14-11-2011 12-47-25.jpg
    14-11-2011 12-47-25.jpg
    68,1 KB · Aufrufe: 194
Zuletzt bearbeitet:
Bei mir sieht das so aus:

Du kannst das Ganze natuerlich auch noch komplexer gestallten.
 

Anhänge

  • notepad++.JPG
    notepad++.JPG
    36 KB · Aufrufe: 169
So wie du das zeigst ist es kein Problem mit dem ersetzen des Textes. Aber wenn ich ein ganzer Textblock ersetzen will, bringt mir diese Maske nicht viel.
 
So sieht es in jeder ini aus:

[Allgemein]
Standarddrucker=HP LaserJet 2055dn PCL 5
Lock=


[Drucker1]
Name=HP LaserJet 2055dn PCL 5
DriverName=HP Universal Printing PCL 5
PrintProcessor=hpzpp042
PrintJobDataType=RAW
PortName=TEST
PortAdresse=TEST

Wenn ich jetzt einen neuen Drucker installieren will, ändere ich den DriverName und den Name des Druckers und setze den Standarddrucker. Bei Lock= trage ich mein Kürzel ein.

Standarddrucker und Lock sind nicht immer oberhalb des zu ersetzenden Drucker. Müsste dann natürlich separat geändert werden.
Es kann aber sein, dass der Drucker, den ich ändern möchte, in einem anderen ini File Drucker2 heisst und dementsprechend an der zweiten Position steht.

Weisst du wie ich es meine?
Ergänzung ()

Push
 
Ich weiß nicht ob ichs richtig verstanden habe. Du willst

Name=HP LaserJet 2055dn PCL 5
DriverName=HP Universal Printing PCL 5

durch

Name=HP LaserJet 2055dn PCL 5
DriverName=HP LaserJet 2055dn PCL 5

ersetzen und lock=abc setzen?

Schreib mal bitte, wie die Datei nach dem Ersetzen aussehen soll.
 
Vor dem ersetzen:

[Allgemein]
Standarddrucker=HP LaserJet 2055dn PCL 5
Lock=


[Drucker1]
Name=HP LaserJet 2055dn PCL 5
DriverName=HP Universal Printing PCL 5
PrintProcessor=hpzpp042
PrintJobDataType=RAW
PortName=TEST
PortAdresse=TEST

Nach dem ersetzen:

[Allgemein]
Standarddrucker=HP LaserJet 2420n PCL 6
Lock=abc


[Drucker1]
Name=HP LaserJet 2420n PCL 6
DriverName=HP Universal Printing PCL 5
PrintProcessor=hpzpp042
PrintJobDataType=RAW
PortName=TEST
PortAdresse=TEST
 
Einfach mehrere Raplacements nacheinander ausfuehren.

Standarddrucker=HP LaserJet 2055dn PCL 5 --> Standarddrucker=HP LaserJet 2420n PCL 6
Lock= --> Lock=abc
Name=HP LaserJet 2055dn PCL 5 --> Name=HP LaserJet 2420n PCL 6

oder einfach HP LaserJet 2055dn PCL 5 --> HP LaserJet 2420n PCL 6
und Lock= --> Lock=abc
 
Dies wäre meine letzte Lösung. Aber es kann doch nicht sein, dass es kein Tool gibt, welches das kann. Scheint mir irgendwie unlogisch. Besonders bei UltraEdit oder Notepad++ müsste doch diese Funktion dabei sein.
 
Nein der Punkt ist, dass ich

"[Drucker1]
Name=HP LaserJet 2055dn PCL 5
DriverName=HP Universal Printing PCL 5"

den gesamten Textblock auf einmal ersetzen möchte und nicht jede Zeile einzeln. Der Punkt ist, dass ich dies nicht nur bei einem Drucker mache, sondern bei sämtlichen.

Wenn dies mit dem Ersetzen gehen würde, wäre da noch eine Frage von: Wie kann ich einen Text ersetzen, der nicht immer an derselben Stelle steht?
 
Wenn du zwei Zeilen auf einmal ersetzen willst, nimmst du halt \n noch mit in deinen zu ersetzenden Text.

Alt1 \n Alt2 --> Neu1 \n Neu2

Es ist doch auch egal WO dieser Text steht. Er wird nur bei exakter Uebereinstimmung ersetzt.
 
Hi,

@SaxnPaule

Genau das hatte ich gemeint - kann das Problem des TE so nicht wirklich nachvollziehen, da es mit deiner Empfehlung einwandfrei funktionieren sollte...

VG,
Mad
 
Also wenn ich dies ausschreibe würde es dann so aussehen:

Suchen: Name=HP LaserJet 2055dn PCL 5 \n Lock= \n Standarddrucker=HP LaserJet 2055dn PCL 5 \n

Ersetzen: Name=HP LaserJet 2420n PCL 6 Lock=abc Standarddrucker=HP LaserJet 2420n PCL 6

Oder verstehe ich euch da falsch?
 
Zurück
Oben