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, 1422 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 ..
Ähnliche Inhalte
Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...

Internet Domänen
Nameserver ein Geist? (7)

Frage von zelamedia zum Thema Internet Domänen ...

Microsoft Office
Übertrag in eine andere Tabelle (6)

Frage von charmeur zum Thema Microsoft Office ...