Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

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

Frage Entwicklung Batch & Shell

Mitglied: bufferm44

bufferm44 (Level 1) - Jetzt verbinden

14.05.2009, aktualisiert 00:46 Uhr, 2741 Aufrufe, 2 Kommentare

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".

01.
Server1=10.20.30.40 
02.
Pfad3=c:\test 
03.
Bildschirmhintergrund=Augenkrebs 
04.
Knöpfchensortierung=Weglaufen will 
05.
Server4=20.30.40.50 
06.
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:

01.
		<Struct name="actionItem[1]"> 
02.
			<String name="name">Knopf1</String> 
03.
			<String name="groupName">Übersicht</String> 
04.
			<Int name="confirmation">0</Int> 
05.
			<Int name="numActions">1</Int> 
06.
			<Int name="idIcon">251</Int> 
07.
			<Struct name="actions[0]"> 
08.
				<Int name="actionId">1</Int> 
09.
				<Struct name="aCopy"> 
10.
					<String name="destFolder">\\server\pfad</String> 
11.
					<Int name="setDodaysDate">0</Int> 
12.
					<Int name="allowMove">0</Int> 
13.
					<Int name="useCopyDelete">0</Int>

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

01.
		<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:

01.
set "Trenn=xxx" 
02.
set /a Nr=1001 
03.
set "Pfad=%~dpn1" 
04.
set "Ext=%~x1" 
05.
for /f "delims=" %%i in ('type "%~1"') do call :ProcessLine "%%i" 
06.
goto :eof 
07.
:ProcessLine 
08.
if %1 == "%Trenn%" goto :NewFile 
09.
echo %~1>>"%Pfad%-%Nr:~1%%Ext%" 
10.
goto :eof 
11.
:NewFile 
12.
set /a Nr+=1
Bin für jeden Tipp dankbar

LG

Tobi
Mitglied: problemsolver
14.05.2009 um 09:38 Uhr
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
01.
<Struct name="actionItem[100]"> 
02.
... 
03.
... 
04.
<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
Bitte warten ..
Mitglied: bufferm44
19.05.2009 um 01:41 Uhr
Hi all,

mal ein Zwischenstand:

habe Markus den Teil als PN gesendet, Beitrag ist noch nicht gelöst aber in Arbeit
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Batch & Shell
gelöst Sonderzeichen Fehler aus Textdatei vermeiden (16)

Frage von Peter32 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Windows Server
Server sehr langsam bei vielen kleinen Dateien (5)

Frage von MichiBLNN zum Thema Windows Server ...

XML
XML Datei Fehler? (1)

Frage von Patrick-IT zum Thema XML ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...