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, 3037 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst PS Werte CSV-Datei in AD Attribut (3)

Frage von lupolo zum Thema Batch & Shell ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Batch & Shell
Mehrere AD Benutzer aus CSV Datei mit PowerShell erstellen (1)

Frage von windelterrorist zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...