Administrator Startseite

Apple

iOS, iTunes, Mac OS X

Entwicklung

Assembler, BASIC, Batch & Shell, Bibliotheken & Toolkits, CSS, C und C++, Datenbanken, HTML, IDE & Editoren, Installation, Java, JavaScript, KiXtart, Lizenzierung, Pascal & Delphi, Perl, PHP, Python, VB for Applications, Visual Studio, Webentwicklung, XML

Hardware

Benchmarks, Cluster, CPU, RAM, Mainboards, Drucker und Scanner, Festplatten, Raid, Grafikkarten & Monitore, LAN, WAN, Wireless, Multimedia & Zubehör, Notebook & Zubehör, Router & Routing, SAN, NAS, DAS, Server-Hardware, Sonstige Peripheriegeräte, Speicherkarten, Switche und Hubs

Internet

Blogs, CMS, Domain Registrierung, E-Books, E-Business, E-Mail, Flatrates, Hosting & Housing, Informationsdienste, Instant Messaging, Onlinedienste, SEO, Server, Soziale Netzwerke, Utilities, Webbrowser

Linux

Apache Server, Debian, Desktop, Netzwerk, OpenOffice, LibreOffice, RedHat, CentOS, Fedora, Samba, Suse, Tools & Utilities, Ubuntu, Userverwaltung

Microsoft

Exchange Server, Hyper-V, Installationsprobleme, Netzwerk, Office, Outlook & Mail, Systemdateien, Tools & Utilities, Userverwaltung, Visual Studio, Windows 7, Windows 8, Windows 10, Windows Phone, Windows Server, Windows Vista, Windows XP

Multimedia

Audio, Digitiales Fernsehen, Grafik, Icons, Schriftarten, Video

Netzwerke

Cluster, DNS, DSL, VDSL, Groupware, Grundlagen, ISDN & Analoganschlüsse, LAN, WAN, Wireless, Monitoring, Netzwerkmanagement, Netzwerkprotokolle, Router & Routing, TK-Netze & Geräte, UMTS, EDGE & GPRS, Voice over IP

Off Topic

Administrator.de Feedback, Humor (lol), Papierkorb

Sicherheit

Backup, Erkennung und -Abwehr, Firewall, Grundlagen, Informationsdienste, Rechtliche Fragen, Sicherheits-Tools, Tipps & Tricks, Verschlüsselung & Zertifikate, Viren und Trojaner

Sonstige Systeme

Google Android, MikroTik RouterOS, Novell Netware, Sun Solaris

Virtualisierung

Hyper-V, KVM, Vmware, Xenserver

Weiterbildung

Aus- und Weiterbildung, Ausland, Schulung & Training, Studentenjobs & Praktikum

Zusammenarbeit

Suche Projektpartner
Weniger Werbung?
Cover IT-Administrator
Die Datenmenge in Unternehmen wächst unaufhaltsam und auch deren notwendige Verfügbarkeit steht längst außer Frage. Deshalb befasst sich das IT-Administrator Magazin im November mit dem Schwerpunkt 'Storage & Datenmanagement'. So zeigen wir unter anderem, wie die Speichervirtualisierung mit Open vStorage funktioniert. Außerdem lesen Sie, auf welchem Weg Sie iSCSI optimal mit Windows Server 2012 R2 und Hyper-V nutzen und wie Sie Amazon S3 dank S3QL ... mehr
Mitglied: StefanLausL
10.07.2009, aktualisiert 18.10.2012, 10658 Aufrufe, 13 Kommentare

GELÖSTnur bestimmte Spalten aus csv Datei auslesen

Guten Morgen,

ich suche ein Lösung für folgendes Problem:

Ich hab in einem Batch mehrere csv Dateien deren Aufbeu eigentlich identisch sein sollte zu einer Datei zusammengefasst
und wollte diese in eine Tabelle vom SQL-Server 2000 importieren.
Der Import ist aber leider auf Fehler gelaufen da ab Zeile 67000 die Spalten nicht mehr mit den vorhergenden Zeilen übereinstimmen.

Jetzt zu meiner Frage:

Ich benötige nur die Spalten 1-7 der Datei.
Wie kann ich mittels Batch die Spalten 8-x aus der CSV-Datei löschen ?

Für eine Antwort wäre ich sehr dankbar.
Mitglied: crashzero2000
10.07.2009 um 11:02 Uhr
Hy Stefan,

bastla ist im Urlaub [Hä - Hat er sich verdient], er könnte dir sicher was zaubern.

Er hat mir vor geraumer Zeit etwas in VB gescriptet das deiner Sache nahe kommt.
Wenn du etwas VBS kannst , kannst du damit sicherlich was anfangen, in dem Script werden auch Zeilen übersprungen da ich nur bestimmte benötigte und werden in eine andere Datei geschrieben.

Guckst du hier : http://www.administrator.de/forum/wie-csv-per-batch-oder-vbs-in-fremdfo ...

PS:Ich bin leider kein VBS´ler
Bitte warten ..
Mitglied: -ricardo-
10.07.2009 um 11:42 Uhr
Eine CSV kannst du auch mit Excel öffenen ...
Wenn die Datensätze nicht gerade mit einen ; getrennt werden müsstest du dann noch den Delimiter einstellen und hast es dann alles schön sauber in Spalten.

Dann kannst du alles bis auf Spalte 1-7 bzw A-G löschen und unter... Speichern unter .... als csv speichern...

geht am schnellsten :D bevor du anfängst zu proggen ... es sei denn du hast 100 von den Dateien
Bitte warten ..
Mitglied: StefanLausL
10.07.2009 um 11:50 Uhr
Hallo crashzero2000 ,

vielen Dank für den Link.
Werd ich mir gleich mal anschauen.
Bin zwar auch kein VBS'ler aber ich schau mal wie weit ich komme
Bitte warten ..
Mitglied: StefanLausL
10.07.2009 um 11:51 Uhr
Leider sind es mehrere Dateien die mehr als 65.000 Zeilen haben
d.h. mit Excel wird das nix. face-sad
Bitte warten ..
Mitglied: -ricardo-
10.07.2009 um 11:53 Uhr
Ja gut Zeilen das ist blöd..

Womit wolltest du es denn Programmieren ...

Vb?
Bitte warten ..
Mitglied: 60730
10.07.2009 um 12:28 Uhr
Zitat von -ricardo-:
Eine CSV kannst du auch mit Excel öffenen ..


Moinsen,

kaum ist der Bastla im Urlaub, tanzen die Mäuse auf dem Tisch


Als Batch - die so gut funktioneren sollte, daß nur ein "B" aus denm B Bereich dort was dran zu bemängeln haben kann...

Und trotzdem ungetestet aus dem Stehgreif....
01.
for /f "tokens=1,7,1-7 delims=, " %%a in (pfad\zur\test.csv) do echo %%a,%%b,%%c,%%d,%%e,%%f,%%g>>pfad_zur_neuen7stelligen.csv

Gruß
Bitte warten ..
Mitglied: 76109
10.07.2009 um 13:50 Uhr
Hallo StefanLausL!

Sorry, habe mich verlesenface-smile

Gruß Dieter
Bitte warten ..
Mitglied: StefanLausL
10.07.2009 um 14:02 Uhr
Problem mit dem vbs Skript ist das irgendwann Runtime Error erscheint.
Aus welchen Gründen auch immer.

Der Batch von TimoBeil funktioniert an sich zumindest mit wenigen Daten.
Wenn ich den Batch an den Echtdaten anwende erscheint "Nicht genügend Arbeitsspeicher".
Die Datei ist im Momen 750 MB gross.

Die Datei wurde ja aus vielen anderen csv Dateien erzeugt bzw. zusammengefügt.
Wie kann ich einen Ordner nach csv Dateien durchsuchen und auf die gefunden Dateien diesen Batch
anwenden um diese dann erst im nächsten Schritt zusammen zu fügen ?
Bitte warten ..
Mitglied: 76109
10.07.2009 um 14:27 Uhr
Hallo StefanLausL!

Falls Du mein VB-Script meinst, dann liegt das daran, dass ich nur von maximal 8 Spalten ausgegangen bin. Mehr hatte ich nicht vorgesehen. Ist aber kein Problem, mache nur noch ein paar Tests.

Gruß Dieter
Bitte warten ..
Mitglied: 76109
10.07.2009 um 14:42 Uhr
Hallo nochmal!

Also, mit diesem Code müssen mindestens 7 Spalten vorhanden sein. Ab Spalte 8 werden alle Spalten ignoriert.

Diese Variante sollte in jedem Fall funktionieren:
01.
Const iPath = "F:\$Scripts\Test\Import.Csv" 
02.
Const ePath = "F:\$Scripts\Test\Export.Csv" 
03.
 
04.
Const Delim = ";"  'Bei Tab: Delim = vbTab 
05.
 
06.
Dim Fso, iFile, eFile, iText, eText(6), i 
07.
 
08.
Set Fso = CreateObject("Scripting.FileSystemObject") 
09.
Set iFile = Fso.OpenTextFile(iPath) 
10.
Set eFile = Fso.CreateTextFile(ePath) 
11.
     
12.
Do Until iFile.AtEndOfStream 
13.
    iText = Split(iFile.ReadLine, Delim, 8) 
14.
    If UBound(iText) >= 6 Then 
15.
        For i = 0 To 6: eText(i) = iText(i): Next 
16.
        eFile.WriteLine Join(eText, Delim) 
17.
    End If 
18.
Loop 
19.
 
20.
iFile.Close:  eFile.Close 
21.
 
22.
MsgBox "Der Exportvorgang ist beendet!", vbInformation, "Meldung"

Gruß Dieter

[edit] Text auf das wesentliche gekürzt [/edit]
Bitte warten ..
Mitglied: StefanLausL
10.07.2009 um 16:20 Uhr
Super !

Vielen,vielen Dank.

Das scheint zu funktionieren.
Bitte warten ..
Mitglied: 76109
10.07.2009 um 18:08 Uhr
Hallo StefanLausL!

Prima, gern Geschehenface-smile

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Outlook & Mail
Tipp: Moin, Epilog: Ja, ich hatte mal wieder eine "alte" (Kunden-)Kiste in den Fingern und das Problem, daß Thunderbird die Mails nicht importieren konnte. Der Grund war, daß auf ... von Lochkartenstanzer, in Outlook & Mail
Diese Inhalte könnten dich auch interessieren
Office
Frage: Hallo Leute, ich bräuchte mal wieder eure hilfe in Sachen EXCEL - ich hoffe ihr könnt mir weiterhelfen, das wäre eine feine SACHE! Und zwar habe ich von ... von sims, in Office
VB for Applications
Frage: Hallo zusammen ich möchte gerne ein Makro schreiben, welches eine Zeile auf Inhalt überprüft und falls etwas drin steht, dass dann ein bestimmter Bereich (z. B. A1:D5) in ... von windowskid, in VB for Applications
Batch & Shell
Frage: Hallo zusammen, Ich versuche aus einer CSV Datei Namen auszulesen und dann auf einen Exchange Server ein user Attribut zu ändern. Das Script läuft durch, aber es wird ... von gabi1305, in Batch & Shell
Exchange Server
Frage: Hallo zusammen, ich wollte am Exchange ein auszug ziehen, welche Geräte per ActiveSync die Mails holen. Ich habe auch dazu gegooglet aber die CSV-Datein besteht aus einer Spalte ... von Oneil-1989, in Exchange Server
Entwicklung
Frage: Sehr geehrter Community, ich sitze mal wieder an einem neuen Problem. es wird in unregelmäßigen Abständen eine PDF Datei in einem Ordner erstellt x:\PDF-input\Abrechnung1.pdf Nun brauche ich eine ... von BlackVictory, in Entwicklung
Heiß diskutierte Inhalte
Linux
Frage: Schönen guten Tag allerseits, zuhause habe ich 5 Computer die von der ganzen Familie immer genutzt werden. Nun wollte ich mir aber einen kleinen Datenserver zusammenbauen, damit man ... von DasJulian, in Linux
PHP
Frage: Hallo Zusammen, ich brauche eine Website auf der man sich mit seinen LDAP Account anmelden kann und dann eine Nachricht eingeben kann die dann in einer .txt abgelegt ... von schneerunzel, in PHP
CPU, RAM, Mainboards
Frage: Hallo zusammen, ich habe mir einen Rechner aus folgenden Komponenten zusammengebaut: ASUS P7P55D-E mit Intel i5-750 Gainward nVidia GeForce GTX 460 GS 60 GB SSD 4 GB Arbeitsspeicher ... von derbermoe, in CPU, RAM, Mainboards
Netzwerk
Frage: Hallo zusammen, mein Intranet besteht aus einer FritzBox 7170 (stellt Internet bereit) und eine FritzBox 7240 (im IP-Client-Modus) für WLan und DECT (die kommt aber leider nicht mit ... von ChristianKnorr, in Netzwerk
CPU, RAM, Mainboards
Frage: Servus an alle da Drausen. Ich habe seit einigen tagen das Problem , das nur noch 3,95 gb Ram verwendbar sind. Ich habe aktuell 12GB verbaut 3x4GB Riegel ... von Loip104, in CPU, RAM, Mainboards