hiyaeurope
Goto Top

Datei nach doppeltem Text durchsuchen auf Grundlage Zeil x

Hallo zusammen,

da mir hier so nett geholfen wurde beim letzten Mal hier nochmals eine Frage an Euch.

Ich habe hier: mehrer Textdateien nach strings durchsuchen und wenn gefunden zeile löschen einen sehr hilfreichen Code gefunden, der auch super funktioniert. Ich brauche nun allerdings eine Lösung, in der der zu suchende Text nicht aus einer neuen Datei kommt, sondern aus der Basisdatei selber.
In Zeile 5 steht ein Text, von dem ich gerne alle vorhandenen Duplikate in der Datei löschen möchte, wobei die Zeile 5 erhalten bleiben soll.
Da es sich um HTML-Dateien handelt und der Suchtext auch Sonderzeichen enthält, habe ich hier noch ein Problem.

Ich hoffe, ich konnte meine Gedankengänge einigermaßen logisch wiedergeben.

LG Hiya

Content-ID: 160652

Url: https://administrator.de/contentid/160652

Ausgedruckt am: 25.11.2024 um 00:11 Uhr

mathe172
mathe172 12.02.2011 um 18:53:23 Uhr
Goto Top
Hallo hiya!

Da es sich um HTML-Dateien handelt und der Suchtext auch Sonderzeichen enthält, habe ich hier noch ein Problem.

Deshalb würde ich eher auf VBs verweisen.
Also in etwa:
  • Lies den Text der Datei ein
  • Schau was in Zeile 5 steht
  • Ersetze alle Vorkommen dieses Textes --> Text.Replace(TextausZeile5,"")
  • Ändere Zeile 5 zurück

Mathe172
60730
60730 12.02.2011 um 19:00:09 Uhr
Goto Top
moin,

Batch würde ich da ausschliessen, denn <> sind nicht nur in HTML Steuerzeichen, sondern auch in "Batch".

Bevor da eine vbs oder andere Lösung von uns kommt - die profilaktischen Gegenfragen:

  • In Zeile 5 steht ein Textfragment, dass genauso in anderen Zeilen steht, oder die ganze Zeile 5 ist ein Duplikat?
  • Ansi oder UTF-8
  • Wer erstellt die Datei(en) und kann der die Duplikate nicht selber rausfischen - bzw. warum sind die überhaupt drin?
  • Ein Beispiel bis Zeile 5 incl. 1 oder 2 Doubletten, die herausgefischt werden sollten. (gerne in <code> </code> Tags.

Gruß

edit @mathe:
- da hab ich wohl zulange zum Tippen gebraucht..
/edit
hiyaeurope
hiyaeurope 12.02.2011 um 21:51:24 Uhr
Goto Top
OK, danke für die schnellen Antworten.
Das war zwar nicht was ich mir erhofft hatte, ist mir aber genaus recht und hilft mir auch weiter - dann probiere ich nicht ewig an einer Lösung, die so nicht (oder schwierig) geht.
Ich werde das ganze dann wohl doch in .doc umwandeln und per VBA bearbeiten - das kann ich wenigst. Da geht dann auch das Umwandeln in .pdf einfach...

Herzlichen Dank an Euch

LG Hiya
jeb-the-batcher
jeb-the-batcher 12.02.2011 um 21:59:46 Uhr
Goto Top
Hallo,

@timobeil: als alter Batch Purist würde ich da eine reine Batch Lösung nicht direkt ausschliessen.

Denn die Sonderzeichen bekommt man ganz gut mit DelayedExpansion in den Griff,
allerdings muss man halt dran denken, bei den FOR-Loops, dass die Expansion von %%a immer ohne DelayedExpansion stattfinden sollte,
sonst gibt es Ärger mit den Ausrufezeichen "!" und den Dächern/Carets "^".

Als Basis für das "sichere" bearbeiten, kann man hier schauen Improved BatchSubstitute.bat

Gruß
jeb