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
GELÖST

CSV Datei neu anordnen, leere Spalten hinzufügen

Frage Entwicklung Batch & Shell

Mitglied: Marja

Marja (Level 1) - Jetzt verbinden

24.05.2011, aktualisiert 18.10.2012, 9407 Aufrufe, 25 Kommentare

Mit Batch kenne ich mich einigermaßen aus, ich hoffe ihr könnt mir bei folgender Frage helfen.

Mit einer Batch Datei möchte ich gerne eine CSV Datei überarbeiten.

Bsp. Original-Datei
Spalte 10; Spalte 2; Spalte 3; Spalte 4; Spalte 9; Spalte 5 ...

Nun möchte ich gerne die Spalten entsprechend ordnen, d.h. das die erste Spalte (wo auch immer sie in der CSV Datei steht) in der neuen CSV Datei am Anfang steht.
Zusätzlich muß ich aber bsp. zwischen Spalte 2 und Spalte 3 eine neue leere Spalte einfügen.

Bsp. Neue-Datei
Spalte 1; Spalte 2; Spalte 3 (neue Spalte), Spalte 4 (alt Spalte 3) usw.

Ich hoffe ihr könnt mir helfen.

LG Marja
Mitglied: bastla
24.05.2011 um 12:43 Uhr
Hallo Marja!
die erste Spalte (wo auch immer sie in der CSV Datei steht)
... wäre woran zu erkennen, bzw
  • Nach welchem Kriterium soll sortiert werden?
  • Wie viele Spalten gibt es?
  • Ist das Leerzeichen am Beginn jeder Spalte Absicht?
und
  • Gibt es einen Einwand gegen die (zumindest temporäre) Verwendung von VBS?

Grüße
bastla
Bitte warten ..
Mitglied: Marja
24.05.2011 um 13:16 Uhr
Hallo Bastla

sorry, da habe ich mich falsch ausgedrückt. Ich hatte die Hilfeanfrage als unviversell angesehen.

Die Original-Datei sieht bsp. wie folgt aus:
Datum;IMEI;Hersteller;Kundenummer;ArtikelNr;ID;Fehler

Diese soll dann bsp. wie folgt aussehen:
ID;Datum;Kundenummer;KontaktNr;ArtikelNr;Hersteller;Ansprechpartner;Fehler;

KontaktNr und Ansprechpartner sind neu hinzugekommen.
Alles andere wurde neu angeordnet. Die Datei muß als CSV in einem anderen Programm weiter aufbereitet werden.

Das Leerzeichen war keine Absicht, ich dachte nur das man dadurch das Simikolon besser sieht.

Ich habe schon einiges probiert. Was mich interessiert wie sage ich das bsp. Spalte 10 an Platz 1 kommt, Spalte 7 an Platz 2 und so weiter.
Außerdem wie bsp. an Platz 3 dann eine neue Spalte angelegt wird ohne Inhalt wenn möglich?

LG Marja
Bitte warten ..
Mitglied: Lochkartenstanzer
24.05.2011 um 13:40 Uhr
Zitat von Marja:
Mit einer Batch Datei möchte ich gerne eine CSV Datei überarbeiten.

Bsp. Original-Datei
Spalte 10; Spalte 2; Spalte 3; Spalte 4; Spalte 9; Spalte 5 ...

Diese drei Zeilen sollten es tun:

cat exceldatei.csc | gawk -F ";" ' { print $20 " ; " $2 " ; <leerzeichen> ; " $3 " ; "$4 " ; " $9 " ; "$5 " ; " ... } >neue-exceldatei.csv
grep "Spaltenbezeichner" neue-exeldatei.csv >sortierte-neue-exceldatei.csv
grep -v "Spaltenbezeichner" neue-exeldatei.csv | sort >>sortierte-neue-exceldatei.csv

gruß

lks

PS. Die Befehle stehen mit cygwin (http://cygwin.com ) auch unter Windows zur Verfügung.
Bitte warten ..
Mitglied: Lochkartenstanzer
24.05.2011 um 13:44 Uhr
Zitat von Lochkartenstanzer:
> Zitat von Marja:
> ----
> Mit einer Batch Datei möchte ich gerne eine CSV Datei überarbeiten.
>
> Bsp. Original-Datei
> Spalte 10; Spalte 2; Spalte 3; Spalte 4; Spalte 9; Spalte 5 ...
>

Diese drei Zeilen sollten es tun:

cat exceldatei.csc | gawk -F ";" ' { print $20 " ; " $2 " ; <leerzeichen> ; " $3
" ; "$4 " ; " $9 " ; "$5 " ; " ... } >neue-exceldatei.csv
grep "Spaltenbezeichner" neue-exeldatei.csv >sortierte-neue-exceldatei.csv

Hier noch ein

sed -e "s/Kundenummer; ;ArtikelNr/Kundenummer;KontaktNr;ArtikelNr/g" -i sortierte-neue-exceldatei.csv

eingefügt und schon hast Du die Header auch angepaßt.

grep -v "Spaltenbezeichner" neue-exeldatei.csv | sort >>sortierte-neue-exceldatei.csv

gruß

lks

PS. Die Befehle stehen mit cygwin (http://cygwin.com ) auch unter Windows zur Verfügung.
Bitte warten ..
Mitglied: bastla
24.05.2011 um 13:47 Uhr
Hallo Marja!

Ich würde, wie schon erwähnt, VBS verwenden:
01.
Alt = "D:\Die.csv" 
02.
Neu = "D:\Die neue.csv" 
03.
Delim = ";" 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
Zeilen = Split(fso.OpenTextFile(Alt).ReadAll, vbCrLf) 
07.
Set DateiNeu = fso.CreateTextFile(Neu) 
08.
For Each Zeile In Zeilen 
09.
    If Trim(Zeile) = "" Then 'Leerzeile oder nur Leerzeichen enthalten 
10.
        ZeileNeu = Zeile 
11.
    Else 
12.
        Felder = Split(Zeile, Delim) 'anhand des Trennzeichens <Delim> in Felder zerlegen 
13.
        ZeileNeu = _ 
14.
            Felder(5) & Delim & _ 
15.
            Felder(0) & Delim & _ 
16.
            Felder(3) & Delim & _ 
17.
            Delim & _ 
18.
            Felder(4) & Delim & _ 
19.
            Felder(2) & Delim & _ 
20.
            Delim & _ 
21.
            Felder(6) 
22.
    End If	 
23.
    DateiNeu.WriteLine ZeileNeu 
24.
Next
Zu beachten: Die Feldnummern beginnen bei 0 ...

Grüße
bastla
Bitte warten ..
Mitglied: Friemler
24.05.2011 um 13:51 Uhr
Hallo Marja,

hier mal ein Vorschlag als Batchscript:
01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
 
06.
set "InputFile=Test.csv" 
07.
set "OutputFile=Out.csv" 
08.
 
09.
 
10.
::Altes Spaltenlayout 
11.
::Datum;IMEI;Hersteller;Kundenummer;ArtikelNr;Id;Fehler 
12.
 
13.
::Neues Spaltenlayout 
14.
::Id;Datum;Kundenummer;KontaktNr;ArtikelNr;Hersteller;IMEI;Ansprechpartner;Fehler 
15.
 
16.
set "ColLayout=6 1 4 5 3 2 7" 
17.
set "NewColumns=4 7" 
18.
set "NewColumnsHeader=Kontaktnummer Ansprechpartner" 
19.
 
20.
type NUL > "%OutputFile%" 
21.
 
22.
 
23.
set /a MaxCol=0 
24.
 
25.
for %%i in (%ColLayout%) do ( 
26.
  call :GetMaxCol %%i 
27.
28.
 
29.
 
30.
set /a RowCount=1 
31.
 
32.
for /f "usebackq eol= delims=" %%l in ("%InputFile%") do ( 
33.
  set "Line=%%l" 
34.
  call :ProcessLine 
35.
36.
 
37.
exit /b 
38.
 
39.
 
40.
 
41.
:ProcessLine 
42.
set /a ColCount=0 
43.
 
44.
for %%i in (%ColLayout%) do ( 
45.
  set /a ColCount+=1 
46.
  call :WriteNewColumn 
47.
  call :WriteColumn %%i 
48.
49.
 
50.
>>"%OutputFile%" echo. 
51.
set /a RowCount+=1 
52.
exit /b 
53.
 
54.
 
55.
 
56.
:WriteNewColumn 
57.
set /a Idx=1 
58.
 
59.
for %%j in (%NewColumns%) do ( 
60.
  if "%%j" equ "%ColCount%" ( 
61.
    if %RowCount% equ 1 ( 
62.
      call :WriteNewColumnHeader 
63.
    ) else ( 
64.
      >>"%OutputFile%" <NUL set /p "=;" 
65.
66.
67.
 
68.
  set /a Idx+=1 
69.
70.
 
71.
exit /b 
72.
 
73.
 
74.
 
75.
:WriteNewColumnHeader 
76.
for /f "tokens=%Idx%" %%k in ("%NewColumnsHeader%") do ( 
77.
  >>"%OutputFile%" <NUL set /p "=%%k;" 
78.
79.
 
80.
exit /b 
81.
 
82.
 
83.
 
84.
:WriteColumn 
85.
for /f "tokens=%1 eol= delims=;" %%c in ("%Line%") do ( 
86.
  if %ColCount% lss %MaxCol% ( 
87.
    >>"%OutputFile%" <NUL set /p "=%%c;" 
88.
  ) else ( 
89.
    >>"%OutputFile%" <NUL set /p "=%%c" 
90.
91.
92.
 
93.
exit /b 
94.
 
95.
 
96.
 
97.
:GetMaxCol 
98.
if %1 gtr %MaxCol% set /a MaxCol=%1 
99.
exit /b 
100.
 
Einschränkung:
In der Quelldatei dürfen höchstens 31 Spalten vorkommen.

Erklärung:
In Zeile 16 wird das Spaltenlayout festgelegt. Das Beispiel bedeutet:
  • Die erste Spalte der Quelldatei ist auch die erste Spalte in der Zieldatei (1 steht auf dem ersten Platz der Liste)
  • Die vierte Spalte der Quelldatei wird zur zweiten Spalte der Zieldatei (4 steht auf dem zweiten Platz der Liste)
  • Die zweite Spalte der Quelldatei wird zur dritten Spalte der Zieldatei (2 steht auf dem dritten Platz der Liste)
  • usw.

In Zeile 17 werden die Nummern der Spalten festgelegt , vor denen eine neue Spalte eingefügt werden soll. Die Zählung bezieht sich auf die Spaltennummern in der Zieldatei, ohne die neu hinzugefügten Spalten mitzuzählen . Die Nummern müssen in aufsteigender Reihenfolge angegeben werden.

In Zeile 18 werden die Header der neuen Spalten festgelegt. Die Reihenfolge muss mit der der Nummern der neuen Spalten aus Zeile 17 korrespondieren.

Bei weiteren Fragen zur Funktionsweise, lass hören.

Gruß
Friemler
Bitte warten ..
Mitglied: Marja
24.05.2011 um 13:51 Uhr
erst einmal vielen Dank.

Er kann mit cat nichts anfangen.

Sonst verstehe ich aber den Code so, das Du in der ersten Zeile die Sortierung durchführst.
Mit Grep kann ich so nichts anfangen und in der sed Zeile wird der Header (Kopf) bearbeitet.

LG Marja
Bitte warten ..
Mitglied: Friemler
24.05.2011 um 14:00 Uhr
Hallo marja,

cat, grep und sed sind Befehle aus der UNIX-Welt, die auf einem Windows-System nicht vorhanden sind. Deshalb der Link auf Cygwin. Das musst Du zuerst installieren, um spezielle Portierungen von UNIX-Befehlen, die Cygwin benötigen, ausführen zu können.

Gruß
Friemler
Bitte warten ..
Mitglied: Lochkartenstanzer
24.05.2011 um 14:04 Uhr
Hier die Erläuterungen dazu

Zitat von Lochkartenstanzer:

cat exceldatei.csc | gawk -F ";" ' { print $20 " ; " $2 " ; <leerzeichen> ; " $3 " ; "$4 " ; " $9 " ; "$5 " ; " ... } >neue-exceldatei.csv

cat gibt die exceldatei aus und diese wird durch den Befehl gawk verarbeitet, in dem einzelne Elemente in anderer Reihenfolge ausgegeben werden. Das Ergebnis wird in die neue-exceldatei.csv geschrieben.

grep "Spaltenbezeichner" neue-exeldatei.csv >sortierte-neue-exceldatei.csv

Damit schreibe ich die Spaltenüberschriften als erste zeile in die sortierte-neue-exceldatei.csv

sed -e "s/Kundenummer; ;ArtikelNr/Kundenummer;KontaktNr;ArtikelNr/g" -i sortierte-neue-exceldatei.csv

Hier wird in der Spaltenüberschrift noch die Kontaktnummer hineingeschrieben.

grep -v "Spaltenbezeichner" neue-exeldatei.csv | sort >>sortierte-neue-exceldatei.csv

grep verabeitet die neue-Exceldatei und verwirft die Zeile mit den Spaltenbezeichnern (wurde ja schon geschrieben) und das wird durch sort durchsortiert. ggf. muß man hier durch parameter noch angeben, nach welchem Feld sortiert werden soll. Das Ergebnis landet dann in sortierte-neue-exceldatei.csv hinter den SPaltenbezeichnern.

Die Befehle cat, gawk, sed, grep und sort sind Standardbefehle unter unixoiden Systemen und stehen mit http://www.cygwin.com auch unter windows zur Verfügung.
Bitte warten ..
Mitglied: Marja
24.05.2011 um 14:14 Uhr
o.k. verstehe. mit Windows befehlen ist dies nicht möglich?

Hintergrund: Ich darf hier leider nichts auf dem Firmen PC installieren, die Batch Datei wird später an verschiedenen Clients eingesetzt und da ist installieren definitiv nicht möglich/erlaubt.

Hmmm, ich schau mir aber mal den Link an.

Danke für eure Hilfe.

LG Marja
Bitte warten ..
Mitglied: Friemler
24.05.2011 um 14:19 Uhr
Hallo Marja,

Zitat von Marja:
mit Windows befehlen ist dies nicht möglich?

das hört man aber garnicht gerne .

Ausserdem: Oben stehen zwei Lösungen (VBS und Batch), das sind Windows-Bordmittel.

Gruß
Friemler
Bitte warten ..
Mitglied: Lochkartenstanzer
24.05.2011 um 14:30 Uhr
Zitat von Marja:
o.k. verstehe. mit Windows befehlen ist dies nicht möglich?

Doch! s.o. Sieht halt nur nicht ganz so elegant aus.


Hintergrund: Ich darf hier leider nichts auf dem Firmen PC installieren, die Batch Datei wird später an verschiedenen Clients
eingesetzt und da ist installieren definitiv nicht möglich/erlaubt.

Da ist die Frage, ob für solch einen Einsatzzweck die Admins keine Ausnahme machen. Einfach mal fragen. Die entsprechenden Tools kamm nan übrigens auch ohne explizite Installation des Gesamtpakets verwenden. Man muß sich dann halt nur die einzelnen Befehle und die cygwin..dll heraussuchen und in ein User-Verzeichnis packen.


Hmmm, ich schau mir aber mal den Link an.

Danke für eure Hilfe.

LG Marja

gern geschehen.

lks
Bitte warten ..
Mitglied: Marja
24.05.2011 um 15:09 Uhr
das sieht super aus, super vielen lieben dank für eure Hilfe.

Ich schau mir das gleich morgen früh an, muss jetzt leider los.

Vielen Dank nochmal.

LG Marja
Bitte warten ..
Mitglied: Biber
24.05.2011 um 18:00 Uhr
Moin Lochkartenstanzer,

Zitat von Lochkartenstanzer:
Da ist die Frage, ob für solch einen Einsatzzweck die Admins keine Ausnahme machen. Einfach mal fragen.
Ich kann da ja nicht für andere Admins sprechen.
Aber: Wenn bei mir jemand anklopfen würde, der cygwin installieren wollte, weil eine Import/Export-CSV-Datei umsortiert werden muss, weil irgendwer es nicht auf die Reihe bekommen hat, nun gleich alle vielen beiden zwei Seiten einer Schnittstelle zeitgleich aktiv zu setzen...

Hey - es gibt in diesem Szenario nur zwei mögliche Varianten.
Entweder die Jungs & Mädels bringen glaubhaft dar, dass dieses Zwangs-Kompatibel-Pressen halt wegen diesen und jenen Softwareproblemen befristet für ein oder zwei Wochen sein muss.
Dann-> Hey, für eine befristete Übergangsfrickelei gibt es keine Ausnahmeinstallation, wenn es auch mit Bordmitteln geht.
Was soll die Ästhetik und Eleganz, wenn dieser Bypass ohnehin in zwei Wochen Asche ist.

-oder-
Die Jungs & Mädels sagen, die wollen dieses Gewurschtel dauerhaft als Teil einer produktiven Prozesskette betreiben.
Dann -> will ich eine Kopie der "produktiv eingesetzten" Skriptversion mit Beschreibung, Tel-Nummer der Autors und das ganze Skript dokumentiert. Auch wenn es bedeutet, dass für eine sed-Halbzeile eine DIN-A4-Seite Doku getippt wird.

Und das Skriptchen wird, wenn irgendwie möglich, event- oder zeitgesteuert gestartet und ist ohne Adminrechte bestenfalls lesbar etc pp.
Denn wenn es als Teil der betrieblichen Prozesse unabdingbar ist, dann gelten auch die Regeln für produktiv eingesetzte Programme.
In diesem Fall würde ich cygwin oder was-auch-immer installieren.

Frage ist nur, ob denn irgendein Hierarch tatsächlich diese Bankrotterklärung ("Wir bekommen die Schnittstelle zur Lohnbuchhaltung nur mit Gefrickel hin") unterschreiben wird.

Das darf doch bei Export/Importschnittstellen wohl nicht wahr sein, dass die Änderung der Spaltenanzahl- oder Reihenfolge im erzeugenden oder lesenden Programm so furchtbar zeitaufwändig ist.

Grüße
Biber
Bitte warten ..
Mitglied: Lochkartenstanzer
24.05.2011 um 21:35 Uhr
Zitat von Biber:
Moin Lochkartenstanzer,

> Zitat von Lochkartenstanzer:
> ----
> Da ist die Frage, ob für solch einen Einsatzzweck die Admins keine Ausnahme machen. Einfach mal fragen.
Ich kann da ja nicht für andere Admins sprechen.

Vielleicht sorgt ja die Frage bei den Admins dafür, daß die Schnittstelle klargezogen wird.

Sofern diese Konvertierung duaerhaft beötigt wird, wäre meine Vorgehensweise, den Zuständigen für die beiden System auf die Füße zu treten, daß die ein kompatibles Austauschformat festlegen.

Ist es nur kurtfristig, würde ich mir eine Station als Konverter ausgucken, auf der zwei Freigaben einrichten (z.B. In und Out) und per skript alles was in "in" bgelegt wird konvertiert auf "out" ablegen. Sofern dann die System Dateien speichern /einlesen die Daten austauschen, wäre damit das Problem gelöst. (vermutlich ist es dann ein Provisorium für die Ewigkeit.)

Daß auch für Einzeiler eine Dokumentation dazugehört ist natürlich selbtverstädnlich.

lks
Bitte warten ..
Mitglied: Marja
25.05.2011 um 08:21 Uhr
Nochmals vielen Dank.

Leider funktioniert das nicht wirklich zu 100%. Zu einem macht er den Header korrekt, aber dann fügt er nicht mehr richtig die Spalten ein.
Habe es sogar einzeln probiert um zu prüfen wo er nun die neue Spalte einfügt.

Zum anderen, macht er zwar den Header fast richtig, aber die zugehörigen Daten in den Spalten haut er daneben, warum auch immer ;-(

Habe parallel die Script von Bastla probiert. Der funktioniert. Leider weiß ich nicht, wie ich den Header überarbeiten kann.


LG Marja
Bitte warten ..
Mitglied: Marja
25.05.2011 um 08:22 Uhr
oh sorry ))

Ja, die Lösung habe ich dann gesehen, war ein wenig verwirrt mit den Antworten im Thread
Nun habe ich alles gefunden.

LG Marja
Bitte warten ..
Mitglied: bastla
25.05.2011 um 09:20 Uhr
Hallo Marja!

Der Vollständigkeit halber die passende VBS-Variante (ungetestet):
01.
Alt = "D:\Die.csv" 
02.
Neu = "D:\Die neue.csv" 
03.
Delim = ";" 
04.
'Falls der Header aus der Datei übernommen werden soll, als nächste Zeile: Header = "" 
05.
Header = "ID;Datum;Kundenummer;KontaktNr;ArtikelNr;Hersteller;Ansprechpartner;Fehler" 
06.
 
07.
Set fso = CreateObject("Scripting.FileSystemObject") 
08.
Zeilen = Split(fso.OpenTextFile(Alt).ReadAll, vbCrLf) 
09.
Set DateiNeu = fso.CreateTextFile(Neu) 
10.
If Header <> "" Then 
11.
    DateiNeu.WriteLine Header 
12.
    Ab = 1 
13.
End If 
14.
For i = Ab To UBound(Zeilen) 
15.
    If Trim(Zeilen(i)) = "" Then 'Leerzeile oder nur Leerzeichen enthalten 
16.
        ZeileNeu = Zeilen(i) 
17.
    Else 
18.
        Felder = Split(Zeilen(i), Delim) 'anhand des Trennzeichens <Delim> in Felder zerlegen 
19.
        ZeileNeu = _ 
20.
            Felder(5) & Delim & _ 
21.
            Felder(0) & Delim & _ 
22.
            Felder(3) & Delim & _ 
23.
            Delim & _ 
24.
            Felder(4) & Delim & _ 
25.
            Felder(2) & Delim & _ 
26.
            Delim & _ 
27.
            Felder(6) 
28.
    End If	 
29.
    DateiNeu.WriteLine ZeileNeu 
30.
Next
Da Du ja ohnehin "Hand anlegen" musst, kannst Du die Headerzeile auch gleich komplett selbst erstellen und dann beim Auslesen die Zeile 1 der CSV-Datei überspringen ...

Grüße
bastla
Bitte warten ..
Mitglied: Marja
25.05.2011 um 10:00 Uhr
Hallo Bastla,

der Code funktioniert. Super.

Wie kann ich ggf. noch den Headernamen überarbeiten?

LG Marja
Bitte warten ..
Mitglied: bastla
25.05.2011, aktualisiert 18.10.2012
Hallo Marja!

Ist wirklich unübersichtlich hier ...

Der geänderte Ansatz steht schon da unten.

Grüße
bastla
Bitte warten ..
Mitglied: Marja
25.05.2011 um 10:32 Uhr
Danke Dir.

Es scheint super zu funktionieren, hatte irgendwo einen Fehler drin, den ich aber gefunden habe.
Das einzigste was er nun macht ist, wenn ich die Datei in Excel öffne, das er mir sagt "Kann Datensatz 1 nicht lesen. Weiterhin jeden Fehler anzeigen?"

Hmmm, das war vorher nicht. Woran kann das liegen?

Die zweite Meldung ist, das Excel festgestellt hat, das die Datei eine SYLK-Datei ist, aber es kann die Datei nicht laden. Entweder ist die Datei fehlerhaft oder ein ungültiges SYLK-Dateiformat. Nach Klick auf OK sehe ich aber die Daten.

LG Marja
Bitte warten ..
Mitglied: bastla
25.05.2011 um 10:36 Uhr
Hallo Marja!
hatte irgendwo einen Fehler drin, den ich aber gefunden habe.
Kann bei ungetesteten Scripts leider passieren - ich würde ihn gerne oben im Code noch korrigieren ...
Die zweite Meldung ist, das Excel festgestellt hat, das die Datei eine SYLK-Datei ist, aber es kann die Datei nicht laden.
http://support.microsoft.com/kb/215591/de

Grüße
bastla
Bitte warten ..
Mitglied: Marja
25.05.2011 um 12:24 Uhr
alles klar, danke Dir.

Der ungetestete Code war korrekt, habe ihn falsch abgeschrieben vermutlich, da er mich immer auf die Zeile 22 verwies.
Es hatte irgendwas mit dem ersten Feld auslesen zu tun gehabt.

Dann habe ich den Code kopiert und eingefügt und es funktioniert.
Habe zwar keinen unterschied zu meinem manuell eingegebenen Code gesehen, aber es funktioniert

Habe mich blöd ausgedrückt. Also alles o.k. mit Deinem ungetesteten Code )

Marja
Bitte warten ..
Mitglied: Friemler
25.05.2011 um 13:56 Uhr
Hallo Marja,

Zitat von Marja:
Dann habe ich den Code kopiert und eingefügt und es funktioniert.

ich schätze mal, das würde mit meinem Batchscript auch so sein, bei mir funktioniert es nämlich.

Ich habe übrigens noch die Ergänzung der Headerzeile eingebaut.

Gruß
Friemler
Bitte warten ..
Mitglied: Biber
25.05.2011 um 19:36 Uhr
[OT] @bastla

Moin bastla,
Zitat von bastla:
> Die zweite Meldung ist, das Excel festgestellt hat, das die Datei eine SYLK-Datei ist, aber es kann die Datei nicht laden.
http://support.microsoft.com/kb/215591/de
Vielen, vielen Dank für diesen Link.
Ich habe mich beinahe eingenässt zunehmend amüsiert beim Lesen.
"Auf ProgrammierpraktikantInnen ist Verlass" dachte ich an dieser Stelle:
Das Problem tritt auf, wenn Sie eine Textdatei öffnen und die ersten beiden Zeichen der Datei die Großbuchstaben ID sind
Auf so blöde Ideen kommt wirklich nicht jeder Coder.
Und bei der 5-Punkte-Anleitung "Wie gebe ich einen Apostroph ein?", da dachte ich nur: "Das sichere ich mir als PDF-Datei."

Grüße
Biber
[/OT]
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell: Spalten tauschen und neue Spalten in CSV datei erzeugen (16)

Frage von Rippchen zum Thema Batch & Shell ...

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
gelöst PS Werte CSV-Datei in AD Attribut (3)

Frage von lupolo zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...

DSL, VDSL
DSL-Signal bewerten (8)

Frage von SarekHL zum Thema DSL, VDSL ...