Top-Themen

Aktuelle Themen (A bis Z)

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, 3072 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
Wert aus einer CSV Datei in einer Textdatei importieren
Frage von Bmaze5Batch & Shell1 Kommentar

Hallo zusammen, ich bin neu im Forum und hoffe ich auf eure Unterstützung. Ich möchte gerne mit Hilfe von ...

Batch & Shell
CSV kleinerer Wert (Batch)
Frage von jochengBatch & Shell3 Kommentare

Ich habe eine CSV Datei mit folgendem Inhalt: 29664;24,95 29664;12,95 29645;9,95 29645;9,95 29655;12,95 29655;24,95 29664;24,95 29655,12,95 29655,24,95 29664;12,95 29664;24,95 ...

Batch & Shell
Werte aus CSV in TXT - Powershell
gelöst Frage von Komoran12Batch & Shell20 Kommentare

Hallo Ihr, ich benötige mal wieder Eure Hilfe,kann mir wer mit einem Code aushelfen? Ich habe eine .csv mit ...

Batch & Shell
CSV-Datei Komma durch Semikolon ersetzen
gelöst Frage von FalkITBatch & Shell8 Kommentare

Hi Zusammen, ich suche eine Möglichkeit in einer Komma getrennten CSV Datei alle Kommas die als Trenner dienen durch ...

Neue Wissensbeiträge
Windows 10

Windows 10 Hello-Anmeldung per Foto ausgehebelt

Tipp von kgborn vor 3 StundenWindows 10

Windows Hello ist eine Funktion, um sich per Fingerabdruck-, Gesichts- oder Iriserkennung bei Windows 10-Geräten anzumelden (siehe), setzt aber ...

Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 11 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 12 StundenSicherheit1 Kommentar

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1012 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Heiß diskutierte Inhalte
Windows Server
SCCM 2016: PXE Boot des Clients schlägt fehl
Frage von gabeBUWindows Server23 Kommentare

Hallo Zusammen Ich habe eine Testumgebung erstellt um über SCCM 2016 einen virtuellen Client aufzusetzen. Folgende Maschinen habe ich ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
gelöst Frage von CenuzeNetzwerkgrundlagen19 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Exchange Server
Exchange empfängt Emails - Kann aber keine Senden
gelöst Frage von niklasschaeferExchange Server11 Kommentare

Hallo, ich stehe gerade bei mir zuhause vor folgender Problemstellung. Gegeben sind 2x Hyper-V Host mit Windows Server 2016 ...