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 mit VBS auslesen

Frage Entwicklung VB for Applications

Mitglied: scorpionesc83

scorpionesc83 (Level 1) - Jetzt verbinden

18.03.2014 um 11:34 Uhr, 1224 Aufrufe, 4 Kommentare

Hallo zusammen,

ich bin in Sachen VBS ein totaler Anfänger und hoffe, dass ihr mir bei einem Problem helfen könnt.

Ich möchte eine CSV-Datei per VBS verändern. Die CSV kommt regelmäßig und die Änderung soll automatisch erfolgen.

Die CSV hat folgenden Aufbau:

anwenderID;anwenderName;Software
1;Meier;Office
1;Meier;Firefox
1;Meier;Notepad++
2;Schmidt;Office
2;Schmidt;Chrome

Meine Zieldatei soll wie folgt aussehen:

andwenderID;anwenderName;Software1;Software2;Software3;SoftwareN
1;Meier;Office;Firefox;Notepad++;
2;Schmidt;Office;Chrome;;

Als eindeutige Identifikation kann die anwenderID verwendet werden.

Wie kann ich es also anstellen, dass mein VB-Skript auf die anwenderID reagiert. Also die Software in eine Zeile, solange die ID identisch ist?

Oder habt ihr andere Lösungsvorschläge?

Vielen Dank für Eure Unterstützung

Björn
Mitglied: bastla
18.03.2014 um 11:42 Uhr
Hallo scorpionesc83 und willkommen im Forum!

Dein Stichwort wäre "Dictionary" ...

Grüße
bastla
Bitte warten ..
Mitglied: scorpionesc83
18.03.2014 um 11:50 Uhr
Hallo bastla,

Danke für deine Antwort.

Wie würde das denn in meinem Beispiel aussehen? Ich habe gerade nach Dictionary und vbs gesucht, muss ich da aber noch ganz schön reinlesen.

VG Björn
Bitte warten ..
Mitglied: bastla
18.03.2014 um 12:21 Uhr
Hallo scorpionesc83!

Schematisch etwa so:
01.
Ein = "Deine.csv" 
02.
Aus = "Deine neue.csv" 
03.
Delim = ";" 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
Set d = CreateObject("Scripting.Dictionary") 
07.
 
08.
'gesamten Dateiinhalt einlesen und zeilenweise getrennt in Array ablegen 
09.
Zeilen = Split(fso.OpenTextFile(Ein).ReadAll, vbNewline) 
10.
 
11.
'ab der zweiten Zeile (= Index 1; erste Zeile enthält Header) durchgehen 
12.
For i = 1 To UBound(Zeilen) 
13.
    Felder = Split(Zeilen(i), Delim) 'anhand des Delimiters in Felder-Array zerlegen 
14.
	ID = Felder(0) 'ID steht im ersten Feld 
15.
	If d.Exists(ID) Then ' ID schon vorhanden? 
16.
        'Wenn ja: nur Software am Ende anfügen 
17.
        d.Item(ID) = d.Item(ID) & Delim & Felder(2) 
18.
    Else 
19.
        'neue ID: Name + Software eintragen 
20.
        d.Add ID, Felder(1) & Delim & Felder(2) 
21.
    End If 
22.
Next 
23.
 
24.
'Alle Datensätze ausgeben 
25.
For Each ID In d.Keys 'alle Dictionary-Einträge durchgehen 
26.
    Ausgabe = Ausgabe & vbNewline & ID & Delim & d.Item(ID) 
27.
Next 
28.
 
29.
fso.CreateTextFile(Aus).Write Mid(Ausgabe, 3)
Eine richtige CSV entsteht so nicht, da es (lt Deinem Beispiel oben) eine unterschiedliche Feldanzahl geben kann. Auch die Kopfzeile musst Du Dir noch zurechtlegen ...

Grüße
bastla
Bitte warten ..
Mitglied: scorpionesc83
18.03.2014 um 15:02 Uhr
Hallo bastla,

Danke für Deine Antwort.

Ich probiere das spätestens morgen einmal aus.

VG Björn
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Bestimmte Spalten aus CSV-Datei auslesen (VBS)
gelöst Frage von GurkenhobelVB for Applications9 Kommentare

Hallo Community, wieder benötige ich einmal kompetente Hilfe. Mein Script zum Auslesen bestimmte Spalten aus CSV-Dateien (über 200 " ...

XML
Vbs - simple XML Datei auslesen
gelöst Frage von DeeJayBeeXML4 Kommentare

Hallo zusammen, ich glaub, ich hab grad ne kleine Blockade oder denke viel zu kompliziert. Gegeben ist eine xml-Datei ...

Batch & Shell
Auslesen und Vergleichen Zweiter CSV Dateien Powershell
gelöst Frage von HainoonBatch & Shell7 Kommentare

Hallo zusammen, ich arbeite im Moment an einem Script zum auslesen und vergleichen von Usern in der AD. Das ...

Batch & Shell
Powershell - importierte CSV-Datei spaltenweise auslesen
gelöst Frage von KromifanBatch & Shell6 Kommentare

Hallo zusammen, bleibe mit meinem rudimentären Powershell-Erfahrungen an einem - wahrscheinlich kleinen - Problem hängen: In meiner CSV-Datei gibt ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 6 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 6 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 9 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...