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

CSV Datei trennen, ersten Wert beibehalten und folgende Werte mit KOMMA trennen

Frage Entwicklung Batch & Shell

Mitglied: intermde

intermde (Level 1) - Jetzt verbinden

05.09.2012, aktualisiert 10:12 Uhr, 3057 Aufrufe, 7 Kommentare

Hallo,

ich habe unterschiedliche Dateien mit dem Aufbau z.b. Test.csv

dbr;Marke
234;A
234;v
456;V
456;S
456;C
897;


daraus soll Werden

dbr;Marke
234;A,V
456;V,S,C
897;


Vielleich kann mir hier nochmal jemand helfen..

Gruß
Thoma
Mitglied: vodomohua
05.09.2012 um 13:10 Uhr
Ich würde hierfür wohl die CSV in Excel einlesen und dort die gleichen Werte zusammenführen.
Bitte warten ..
Mitglied: intermde
05.09.2012 um 14:52 Uhr
Wollte den Umweg aus Excel umgehen und alles per VBS Script erledigen lassen, da die Daten nochmalig in Access zusammen gefügt werden..
Mit Excel hab ich weitere Dokumente die laufen müssen
Bitte warten ..
Mitglied: mathe172
05.09.2012 um 18:02 Uhr
Hallo,

in der Hoffnung, dass Batch auch ok ist (zumal wir hier im Batch&Shell-Bereich sind):
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Input=csv.csv" 
03.
set "Output=Output.csv" 
04.
<"%Input%" set /p "Header=" 
05.
for /f "skip=1 tokens=1,2 usebackq delims=;" %%A in ("csv.csv") do ( 
06.
if "!Data_%%A!"=="" set "dbrs=!dbrs! %%A" 
07.
set "Data_%%A=!Data_%%A!,%%B" 
08.
09.
>"%Output%" ( 
10.
echo.%Header% 
11.
for %%A in (%dbrs%) do echo.%%A;!Data_%%A:~1! 
12.
)
Diese Batch liest die Datei csv.csv ein (in Zeile 2 änderbar) und gibt das Ergebnis in Output.csv aus (siehe Zeile 3). Der "Header" muss dabei in der ersten Zeile der Input-Datei stehen.

MfG,
Mathe172
Bitte warten ..
Mitglied: NetWolf
05.09.2012 um 18:17 Uhr
Grüß Gott,

*grübel* die Datei wird in Access eingelesen? Dann frage ich mich, warum du die Änderung nicht gleich in Access durchführst? Den VBA - Code kannst du doch erstellen, oder?

Grüße aus München
Wolfgang
(Netwolf)
Bitte warten ..
Mitglied: bastla
05.09.2012, aktualisiert um 21:11 Uhr
Hallo intermde!

Ich reiche noch die VBS-Variante nach - aber eigentlich solltest Du doch inzwischen auch selbst schon zumindest zu einem Ansatz kommen können ...
01.
Ein = "Test.csv" 
02.
Aus = "Test_neu.csv" 
03.
Delim = ";" 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
Set d = CreateObject("Scripting.Dictionary") 
07.
 
08.
T = Split(fso.OpenTextFile(Ein).ReadAll, vbNewLine) 
09.
Ueber = T(0) 'erste Zeile übernehmen 
10.
For i = 1 To UBound(T) 'Bezeichnungen sammeln 
11.
    If Trim(T(i)) <> "" Then 'keine Leerzeile verarbeiten 
12.
        dbr = Split(T(i), Delim)(0) 'erstes und ... 
13.
        Marke = Split(T(i), Delim)(1) '... zweites Feld der Datenzeile lesen ... 
14.
        If dbr <> "" Then 
15.
            If Not d.Exists(dbr) Then '... und, falls noch nicht vorhanden, ... 
16.
                d.Add dbr, Marke '... als neuen Eintrag dem Dictionary hinzufügen; ... 
17.
            Else 
18.
                d.Item(dbr) = d.Item(dbr) & "," & Marke '... ansonsten nur "Marke" an bisherige Zeile anfügen 
19.
            End If 
20.
        End If 
21.
    End If 
22.
Next 
23.
 
24.
Daten = Ueber 'Ausgabe beginnt mit Überschrift 
25.
K = d.Keys: I = d.Items ' Werte aus Dictionary in Arrays übernehmen ... 
26.
For j = 0 To UBound(K) '... und diese zeilenweise ... 
27.
    Daten = Daten & vbNewLine & K(j) & Delim & I(j) '... auslesen und zur Ausgabe hinzufügen 
28.
Next 
29.
 
30.
fso.CreateTextFile(Aus).Write Daten 'Ausgabedatei schreiben 
31.
WScript.Echo "Fertig."
Vorteil dieser Version: Die Daten müssen nicht sortiert sein ...

Grüße
bastla
Bitte warten ..
Mitglied: mathe172
05.09.2012 um 22:32 Uhr
@bastla: Was meinst du mit "bei dieser Version müssen die Daten nicht sortiert sein"? Müssen sie das bei meiner? Ich bin wahrscheinlich einfach blind...könntest du mich aufklären?

Mathe172
Bitte warten ..
Mitglied: bastla
06.09.2012 um 08:12 Uhr
@ mathe172
Bezog sich nicht auf Deinen Batch, sondern auf die VBS-Ansätze zu anderen Datenstrukturen, die der TO hier schon erhalten hat (und die mich hoffen ließen, dass er vielleicht auch selbst schon einmal zumindest die Grundstruktur würde aufbauen können) ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst PS Werte CSV-Datei in AD Attribut (3)

Frage von lupolo zum Thema Batch & Shell ...

Microsoft Office
Automatischer Datenimport aus csv Datei in Access DB - Wo zu ändern? (2)

Frage von Mejestic12 zum Thema Microsoft Office ...

Windows Server
PowerShell Inhalt einer csv Datei löschen (3)

Frage von makaroni zum Thema Windows Server ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Festplatten, SSD, Raid
PC stellt nach dem Bios ab (20)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...

Server-Hardware
Einem Stromausfall entgegen wirken (19)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Server-Hardware ...

iOS
16 iPads zentrall verwalten (18)

Frage von simonlohr zum Thema iOS ...

Windows 7
Freeware MSI Tool (13)

Frage von uridium69 zum Thema Windows 7 ...