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

TXT, CSV in XLS oder CSV mit BATCH, VBA oder ähnliches

Frage Microsoft Windows Tools

Mitglied: WIN95FTW

WIN95FTW (Level 1) - Jetzt verbinden

06.08.2013, aktualisiert 09:34 Uhr, 1414 Aufrufe, 1 Kommentar

Hallo liebe IT-Gemeinde,

ich hab hier ein kleines Problem:

Ich habe eine große Menge an Datensätzen, welche in TXT/CSV Daten gespeicht sind. Jeder Datensatz ist in einer eigenen Datei. Die Formatierung sieht in etwa so aus:

{"_id":"uv2hx","_rev":"1864-f02c5c50d1fd3eXKE2e","@level":"2","@bought":"1695620","value":"1746.85577393","reco":"405000","quest":"8","@nb_veh":"267210","@stars":"52,40","@raw":"2","ELO_LB":"0.0","ranke":"36","@xp_ca:"1008","@multi":"6824",}

... diese Datensätze sollen übersichtlich in einer Tabelle gelistet werden. Dabei muss zB: aus:

"reco":"405000",

der Wert "405000" in eine Spalte der Tabelle übernommen werden. Das "reco" ist in dem Fall der Spaltenname. Für jeden Datensatz soll natürlich eine neue Zeile angelegt werden.

Ein weiteres Problem ist, die Reihenfolge der Daten im Datensatz kann sich unterscheiden. Der oben gezeigte Datensatz kann auch wie folgt aussehen:

{"_id":"uv2hx","_rev":"1864-f02c5c50d1fd3eXKE2e","@stars":"52,40","@level":"2","@bought":"1695620","@multi":"6824","value":"@raw":"2","1746.85577393","reco":"405000","quest":"8","@nb_veh":"267210","ELO_LB":"0.0","ranke":"36","@xp_ca:"1008",}

Da es sich um wirklich viele Datensätze handelt, muss die ganze Aktion automatisiert ablaufen und es dürfen keine Artefakte wie:

" oder ;

in der Tabelle verbleiben.

Ich bedanke mich schoneinmal für alle Hinweise von euch!
Mitglied: bastla
06.08.2013, aktualisiert um 16:11 Uhr
Hallo WIN95FTW und willkommen im Forum!

Nur auf Basis Deiner geposteten Beispiel-Datensätze (mich irritiert etwa "{" am Anfang ohne "}" am Ende) und unter der Annahme, dass in jedem Datensatz jeweils die gleichen Felder enthalten sind und es sich außerdem um eine einmalige Aktion handelt, würde ich das quick & dirty etwa so versuchen:
01.
@echo off & setlocal 
02.
set "CSV=Ergebnis.csv" 
03.
 
04.
>"%CSV%" echo ;"@bought";"@level";"@multi";"@stars";"_rev";"quest";"reco";"value":;"@raw";{"_id" 
05.
for /f "delims=" %%f in ('dir /b *.csv') do call :ProcessLine "%%f" 
06.
"%CSV%" 
07.
goto :eof 
08.
 
09.
:ProcessLine 
10.
set /p Zeile=<%1 
11.
setlocal enabledelayedexpansion 
12.
for /f "tokens=2 delims=:" %%i in ('^(for %%a in ^(%Zeile%^) do @echo %%a^)^|sort') do set "Satz=!Satz!;"%%~i" 
13.
>>"%CSV%" echo !Satz: =! 
14.
endlocal 
15.
goto :eof
Das Ergebnis sollte eine mit Excel zu öffnende CSV-Datei sein.

Sollten übrigens die Einzeldateien anstatt ".csv" den Typ ".txt" haben, die Zeile 5 entsprechend anpassen.

Grüße
bastla

P.S.: Für Deine Beispiel-Datensätze würde sich "Code"-Formatierung anbieten ...
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

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

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...