bufferm44
Goto Top

Textdatei (xml) splitten mit vielen Sonderzeichen drin...

Hi zusammen,

ich komme mal wieder mit einem kleinen Problem um die Ecke...

Ich habe ein XML-File das an bestimmten Stellen gesplittet werden soll - Hintergrund:

Ein Konfigurationsfile soll eine Grundkonfiguration enthalten "oberer Teil" und "unterer Teil" und einen "editierbarenTeil" (Mitte) der von den Usern nach Herzenslust zerspielt werden kann. (Es geht nicht anders - die User müssen selber ändern können und es gibt in der Software keine Möglichkeit das Editieren auf einen bestimmten Bereich zu begrenzen. Es geht hier auch nicht um Böswilligkeit oder sowas - die User haben zu etwa 60% die gleichen Anforderungen und die anderen 40% stellen sie sich selbst ein. Das haben sie auch drauf, hat Jahre lang gut funktioniert. Nur wenn in den 60% was geändert werden muss (neue Server, neue Knöpchen die irgendwelche Scripte starten), rennen wir in der Abteilung rum von PC zu PC und die Fehlerquelle ist dementsprechend hoch wenn man pro Arbeitsplatz 30 Häkchen setzt und 10 neue Pfade eingibt...


Es wird die Ansage gelten "was geändert werden darf" bleibt und der Rest ist morgens "sauber"). Jeder Benutzer kann am Tag in seiner Konfiguration ändern was er will, nachts wird sein File eingelesen, der Teil den er editieren durfte wird herausextrahiert, und seine Konfigurationsdatei wird wieder neu zusammengesetzt: Oberer und unterer Teil (ist sauber da durch Admins gepflegt und evtl aktuelle Änderungen sind drin) und mittlerer Teil (der zuvor rausextrahiert wurde) werden also wieder zu einer Datei zusammengesetzt. Die Konfiguration die die Admins pflegen läuft dann genau andersrum, Änderungen im "mittleren Teil" gehen durch das Überbügeln mit den Teilen der User natürlich verloren, was vollkommen ok ist.

Beispiel: Die Zeilen 1-2 und 5-6 sollen dem User jede Nacht übergebügelt werden, 3-4 "bleiben ihm erhalten".

Server1=10.20.30.40
Pfad3=c:\test
Bildschirmhintergrund=Augenkrebs
Knöpfchensortierung=Weglaufen will
Server4=20.30.40.50
Pfad6=d:\test2

Nun ist das ja im Prinzip kein Problem, Anleitungen zum Splitten und Zusammenfügen von Textdateien gibt es ja hier nicht wenige...

Aber in der xml sind ja ne Menge "böse" Zeichen die einem den Spaß verderben...

So sieht ein Teil aus:

		<Struct name="actionItem[1]">  
			<String name="name">Knopf1</String>  
			<String name="groupName">Übersicht</String>  
			<Int name="confirmation">0</Int>  
			<Int name="numActions">1</Int>  
			<Int name="idIcon">251</Int>  
			<Struct name="actions">  
				<Int name="actionId">1</Int>  
				<Struct name="aCopy">  
					<String name="destFolder">\\server\pfad</String>  
					<Int name="setDodaysDate">0</Int>  
					<Int name="allowMove">0</Int>  
					<Int name="useCopyDelete">0</Int>  


Wie erkläre ich der Batch nun z.B. die Zeile

		<Struct name="actionItem[100]">  

auszulesen und diese bis einschließlich Item 199 irgendwohin zu legen?

Als Arbeitsgrundlage habe ich das hier was ohne die Sonderzeichen auch einwandfrei funktioniert:

set "Trenn=xxx"  
set /a Nr=1001
set "Pfad=%~dpn1"  
set "Ext=%~x1"  
for /f "delims=" %%i in ('type "%~1"') do call :ProcessLine "%%i"  
goto :eof
:ProcessLine
if %1 == "%Trenn%" goto :NewFile  
echo %~1>>"%Pfad%-%Nr:~1%%Ext%"  
goto :eof
:NewFile
set /a Nr+=1

Bin für jeden Tipp dankbar face-smile

LG

Tobi

Content-Key: 116031

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

Printed on: April 25, 2024 at 02:04 o'clock

Member: problemsolver
problemsolver May 14, 2009 at 07:38:52 (UTC)
Goto Top
Hallo Tobi,

ich könnte Dir mit VB weiterhelfen...(was sicherlich nicht schlechter sein wird...) Allerdings müsste ich wissen, was Du jetzt genau ersetzt haben willst. Beispiel:

xmlDatei besteht aus:
Bereich oben
Bereich mitte
Bereich unten

Bereich mitte wird begrenzt durch
<Struct name="actionItem[100]">  
...
...
<Struct name="actionItem[200]">  

Richtig?

Bereich mitte soll gesichert werden pro User und "Bereich oben" und "Bereich unten" sollen aus vordefinierten Standarddateien eingelesen werden und am Tagesanfang/Ende mit der gesicherten "Bereich Mitte" kombiniert werden?
xmlDatei nachher
Bereich oben (vordefiniert durch Admins)
Bereich mitte (vorherige Einstellungen des Users)
Bereich unten (vordefiniert durch Admins)

Sind diese Bedingungen korrekt?

Gruß

Markus
Member: bufferm44
bufferm44 May 18, 2009 at 23:41:05 (UTC)
Goto Top
Hi all,

mal ein Zwischenstand:

habe Markus den Teil als PN gesendet, Beitrag ist noch nicht gelöst aber in Arbeit face-wink