inspiration
Goto Top

2 Zeilen in CSV Datei einfügen

Hallo ihr Meister,

ich habe eine CSV Datei, in dieser sind 8 Spalten.

Diese sind durch ein ; getrennt.

Jetzt muss ich in dieser CSV Datei einen Header schreiben.

Dieser muss wie folgt lauten:

NAME;ZUSATZ;STRASSE;NUMMER;PLZ;STADT;LAND;ADRESS_TYP

ALS 2. ZEILE muss folgendes:

MAX;MUSTERMANN;MUSTERSTR. 13;Abs.1;12345;MUSTERSTADT;DE;HOUSE


so und weil des noch nicht alles ist kommt noch etwas dazu:

Die Spalte ADRESS_TYP ist beim EXPORT leer.

Dort muss noch in jede Zeile (außer in Zeile 1+2) das Wort HOUSE rein.


So, mehr ist mit dieser Datei gar nicht zum tun. HEHE


Ich hoffe mir kann wieder so gut geholfen werden wie letztes mal.


Gruß

Content-ID: 175031

Url: https://administrator.de/contentid/175031

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

Head-Crash
Head-Crash 20.10.2011 um 21:14:56 Uhr
Goto Top
Hi,

wenn es nur wenige Zeilen sind, hau Dir die Datei in Notepad+ und füge sie manuell hinzu.
Alternativ kannst Du die CSV Datei in Excel laden und dort einfach eine neue Spalte einfügen und oben und unten im gewünschen Bereich "HOUSE" eintragen.
Danach Auto Ausfüllen benutzen und einfach wieder als CSV abspeichern.

Ein Bild hab ich Dir bereitgestellt:

http://www.bilder-space.de/bilder/5d8a26-1319138057.jpg

Viel Erfolg!
inspiration
inspiration 20.10.2011 um 21:23:02 Uhr
Goto Top
Danke für deine Antwort.

Ich brauche die Datei mehrmals am Tag.

Dann müsste ich das jedesmal machen. Und das wollte ich mir eigentlich ersparen.

Doppelklick fertig und im Proggy einfügen. FERTISCH.

So bräuchte ich das eben unbedingt.


Gruß
Head-Crash
Head-Crash 20.10.2011 um 21:32:54 Uhr
Goto Top
hmm, dann solltest ein kleines Programm oder Script haben, mit welchem Du das vielleicht sogar komplett automatisiert erledigen kannst. Ist nicht mehr ganz so mein Fachgebiet, aber ich bin mir sicher, die Community wird Dir hier sicherlich weiterhelfen können.
bastla
bastla 20.10.2011 um 21:36:03 Uhr
Goto Top
Hallo inspiration!

Im einfachsten Fall etwa so:
@echo off & setlocal
set "Datei=D:\Deine.csv"  
set "Bak=%temp%\Deine.csv"  

move "%Datei%" %Bak%  
 >"%Datei%" echo NAME;ZUSATZ;STRASSE;NUMMER;PLZ;STADT;LAND;ADRESS_TYP  
>>"%Datei%" echo MAX;MUSTERMANN;MUSTERSTR. 13;Abs.1;12345;MUSTERSTADT;DE;HOUSE  
for /f "delims=" %%i in (%Bak%) do >>"%Datei%" echo %%iHOUSE  
Soferne es Zeilen geben kann, die mit einem leeren Feld (daher also mit ";") beginnen, wäre eher
for /f "eol=§ delims=" %%i in (%Bak%) do >>"%Datei%" echo %%iHOUSE
zu verwenden, wobei "§" ein Zeichen darstellt, das sicher nicht in der Datei vorkommt.

Grüße
bastla
inspiration
inspiration 20.10.2011 um 21:36:48 Uhr
Goto Top
Deshalb dachte ich ja ein eine Bat datei.

Aber da weiß ich auch icht weiter und deshalb brauche ich die Hilfe von den Profis hier.

Dir aber trotzdem danke für deine " versuchte " Hilfe !!!
inspiration
inspiration 20.10.2011 um 21:51:25 Uhr
Goto Top
Genial.

Du bist echt Wahnsinn !!!

Des klappt genial.

Jetzt habe ich noch eines:

Ich habe jetzt erst mitbekommen, das beim Export z.B.: ;"bastla";

Die " müssten jetzt noch alle wech.


Danke
bastla
bastla 20.10.2011 um 22:00:27 Uhr
Goto Top
Hallo inspiration!

Sollte so gehen:
@echo off & setlocal
set "Datei=D:\Deine.csv"  
set "Bak=%temp%\Deine.csv"  

move "%Datei%" %Bak%  
 >"%Datei%" echo NAME;ZUSATZ;STRASSE;NUMMER;PLZ;STADT;LAND;ADRESS_TYP  
>>"%Datei%" echo MAX;MUSTERMANN;MUSTERSTR. 13;Abs.1;12345;MUSTERSTADT;DE;HOUSE  
for /f "eol=§ delims=" %%i in (%Bak%) do set "Zeile=%%i" & call :ProcessLine  
goto :eof

:ProcessLine
setlocal enabledelayedexpansion
>>"%Datei%" echo !Zeile:"=!HOUSE  
endlocal
goto :eof
Grüße
bastla
inspiration
inspiration 20.10.2011 um 22:12:40 Uhr
Goto Top
Genial.

Da weiß man gar nicht wie man sich bedanken soll.
Weil das ist echt wahnsinn.
Du hilfst mir ungemein !!!

Jetzt hätte ich noch eine Überlegung.

Wäre schön, aber nicht so wichtig, das wichtig ist schon erledigt.

Wenn die ursprungsdatei jetzt 9 Spalten hat.
Könnte man Spalte 1+2 in eine Spalte zusammen fügen, dann spalte 2 löschen (weil ist ja in spalte 1 mit drin) und dann den obigen Ablauf machen ?
bastla
bastla 20.10.2011 um 22:16:35 Uhr
Goto Top
Hallo Inspiration!

Gegenfrage: Sind in den Spalten 1 und 2 immer Werte enthalten? Falls ja, dann (ungetestet):
@echo off & setlocal
set "Datei=D:\Deine.csv"  
set "Bak=%temp%\Deine.csv"  

move "%Datei%" %Bak%  
 >"%Datei%" echo NAME;ZUSATZ;STRASSE;NUMMER;PLZ;STADT;LAND;ADRESS_TYP  
>>"%Datei%" echo MAX;MUSTERMANN;MUSTERSTR. 13;Abs.1;12345;MUSTERSTADT;DE;HOUSE  
for /f "tokens=1-2* delims=;" %%i in (%Bak%) do set "Zeile=%%i%%j;%%k" & call :ProcessLine  
goto :eof

:ProcessLine
setlocal enabledelayedexpansion
>>"%Datei%" echo !Zeile:"=!HOUSE  
endlocal
goto :eof
Grüße
bastla
inspiration
inspiration 20.10.2011 um 22:23:51 Uhr
Goto Top
Wie jetzt ungetestet ? Soll ich Dir da glauben ? Naja, ok. :D


JAAAAAAAAAAAAAAAAAAAA, es funzelt !!!

Nur muss jetzt noch nen Leerzeichen rein. Spalte 1 = Ex Spalte 1 + Leerzeichen + Ex Spalte 2

Weil jetzt ist es bastlabastla und soll ja bastla bastla sein. :D
bastla
bastla 20.10.2011 um 22:25:31 Uhr
Goto Top
Hallo inspiration!
Nur muss jetzt noch nen Leerzeichen rein
Und Du hast gar keine Idee, wo das hinpassen würde? face-wink

Grüße
bastla
inspiration
inspiration 20.10.2011 um 22:28:31 Uhr
Goto Top
nix posten. Ich kriegs bestimmt raus. Moment
inspiration
inspiration 20.10.2011 um 22:41:29 Uhr
Goto Top
Irgendwie ist man echt zu bequem. Solche einfachen Dinge kann man eigentlich selbst ausprobieren und dabei vielleicht noch etwas lernen.

"Zeile=%%i%%j; %%k"

Dort muss das Leerzeichen nach dem ; hin.


Danke für die anregung es selbst auszuprobieren.


Und wirklich vielen vielen Dank für deine Geniale Hilfe.
Und das schon das 2. Mal so wahnsinnig schnell
Skyemugen
Skyemugen 21.10.2011 um 08:50:37 Uhr
Goto Top
Aloha ...

warum will man eine Spalte beginnend mit einem Leerzeichen? ... Ich hätte ja eher vermutet, dass das Leerzeichen zwischen %%i und %%j kommt aber nunja face-wink

greetz André
inspiration
inspiration 21.10.2011 um 08:53:57 Uhr
Goto Top
Ist ja nicht am Anfang.

Das leerzeichen ist zwischen j und k

also %%i%%j;(leerzeichen)%%k
Skyemugen
Skyemugen 21.10.2011 um 09:39:07 Uhr
Goto Top
Aloha,

wie, ist nicht am Anfang?

; symbolisiert doch die Trennung zweier Spalten also ist dein Leerzeichen doch am Anfang einer neuen Spalte ... naja, mir soll's egal sein aber wenn das Thema hier fertig ist, klopp doch mal den klimagrünen Haken dran.

greetz André
inspiration
inspiration 21.10.2011 um 09:42:43 Uhr
Goto Top
Hmmmm,


aber es geht !!!

Grüner haken ist erledigt !