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

Wie füge ich einer csv datei was hinzu?

Frage Microsoft Microsoft Office

Mitglied: elvis0408

elvis0408 (Level 1) - Jetzt verbinden

07.12.2012 um 03:59 Uhr, 2687 Aufrufe, 13 Kommentare

Hallo,
ich möchte einer csv datei noch was hinzufügen, die csv datei hat eine Kopfzeile die ungefähr so aussieht

bla bla 1|bla bla 2|bild 1|bild2|

und unter bild1 und bild2
steht dann zb. 1234.jpg. Ich möchte jetzt die csv so bearbeiten das unter der bild1 spalte nicht 1234.jpg steht, sondern ein zb http:\www.meinepage.de/bilder/1234.jpg
also praktisch einer spalte noch was zufügen zb "http:\www.meinepage.de/bilder/" , mit dem Editor den ich benutze geht ja nur Suchen und Ersetzen, bräuchte einen der Suchen und Hinzufügen (adden) kann, gibs so was? Sonst müsste ich jede Zeile manuell hinzufügen und bei 4000 einträgen zuviel.

Ich hoffe ich konnte das verständlich genug erklären, bin Neuling.

Mit freundlichen Grüßen Bert
Mitglied: TsukiSan
07.12.2012, aktualisiert um 06:55 Uhr
Hallo Bert,

meintest du es so in etwa:
01.
Const AddText = "http:\www.meinepage.de/bilder/" 
02.
Const Spalte = 2 
03.
Const TrennZeichen = "," 
04.
Const AusgabeDatei = "MeineDatei_Add.csv" 
05.
 
06.
Set FSO = CreateObject("Scripting.FileSystemObject") 
07.
TempData = Split(FSO.OpenTextFile("MeineDatei.csv", 1).ReadAll, vbCrLf) 
08.
 
09.
Set objFile = FSO.CreateTextFile(AusgabeDatei, True) 
10.
objFile.WriteLine (TempData(0)) 
11.
 
12.
 
13.
For i = 1 To (Ubound(TempData) - 1)  
14.
    temp1 = split(TempData(i),TrennZeichen) 
15.
    temp1(Spalte) = AddText & temp1(Spalte) 
16.
    temp2 = Join(temp1,TrennZeichen) 
17.
    	objFile.WriteLine (temp2) 
18.
Next 
19.
 
20.
objFile.Close 
21.
 
22.
Set objFSO = Nothing 
23.
Set FSO = Nothing 
24.
 
25.
Wscript.Echo "Erledigt!"
Gruss
Tsuki
Bitte warten ..
Mitglied: elvis0408
07.12.2012 um 07:06 Uhr
Nein, sorry so meinte ich das nicht, eher wenn ich die Datei im Exel oder einem anderen Editor bearbeite.


Mit freundlichen Grüßen
Bert
Bitte warten ..
Mitglied: Fidel83
07.12.2012, aktualisiert um 07:40 Uhr
Guten Morgen

Schau dir doch die csv-Datei doch einfach mal in einem Editor an. Das Format ist ganz einfach. In der ersten Zeile steht der Tabellenkopf. Spalten werden per Semikolon getrennt. Alle weiteren Zeilen erfassen die Daten.

Insofern du nur wenige Daten hast, die nachgepflegt werden müssen, dann mach das manuell. Bei einer entsprechend großen Tabelle empfehle ich aber dann ein Script.

LG
Bitte warten ..
Mitglied: bastla
07.12.2012 um 11:24 Uhr
Hallo Tsuki!

Wird zwar vermutlich keinen großen Performanceunterschied ergeben, aber ich tendiere dazu, derartiges im Speicher (Array) zu erledigen und nur am Ende in die Datei zu schreiben (mit dem Nebeneffekt, dass dann auf Wunsch auch die Originaldatei überschrieben werden kann) - das sähe (ungetestet) etwa so aus:
01.
Const AddText = "http://www.meinepage.de/bilder/" 
02.
Const Spalte = 2 
03.
Const TrennZeichen = "," 
04.
Const EingabeDatei = "MeineDatei.csv" 
05.
Const AusgabeDatei = "MeineDatei_Add.csv" 
06.
 
07.
Set FSO = CreateObject("Scripting.FileSystemObject") 
08.
TempData = Split(FSO.OpenTextFile(EingabeDatei).ReadAll, vbCrLf) 
09.
 
10.
For i = 1 To UBound(TempData) 
11.
    temp1 = Split(TempData(i), TrennZeichen) 
12.
    temp1(Spalte) = AddText & temp1(Spalte) 
13.
    TempData(i) = Join(temp1, TrennZeichen) 
14.
Next 
15.
 
16.
FSO.CreateTextFile(AusgabeDatei).Write Join(TempData, vbCrLf) 
17.
 
18.
Set FSO = Nothing 
19.
 
20.
WScript.Echo "Erledigt!"
Grüße
bastla
Bitte warten ..
Mitglied: TsukiSan
07.12.2012 um 11:48 Uhr
Hallo bastla,

ich pflichte dir völlig bei!
Mir schwebte erst auch die Array-Geschichte vor, habe mich aber dann erinnert, dass ich mal den Fall hatte/habe(!) , dass ab einer bestimmten Anzahl von Arrays (Zeilen in diesem Fall) der script mit Fehlermeldung abgeschmiert ist. Der TO schrieb was von gut 4000 Zeilen. In meinem Beispiel (WinXP SP3 deu/eng) lag die Zeilenanzahl deutlich unter 4000 und der Fehler tritt auf. Also kam mir die Idee, es direkt Zeile für Zeile zu schreiben (dann kann man aber nicht direkt die Originaldatei überschreiben).

Aber der TO schrieb ja nun, dass er es in Excel direkt machen möchte.
Nun weiss ich aber nicht welche Excel-Version und wie er ein Makro (eventuell) anlegen möchte.

Schönes Adventwochenende und viele Grüsse

Tsuki
Bitte warten ..
Mitglied: bastla
07.12.2012 um 13:17 Uhr
Hallo Tsuki!
wie er ein Makro (eventuell) anlegen möchte.
Wenn tatsächlich Excel (warum auch immer) verwendet werden soll, genügt für eine einmalige Aktion auch eine (kopierfähige) Formel der Art
="http://www.meinepage.de/bilder/"&C2
in einer Hilfsspalte. Die nach dem "Nach-unten-ausfüllen" entstandenen Werte dann per "Kopieren" und "Inhalte einfügen / Werte" in die Originalspalte transportieren und die Hilfsspalte löschen ...

... und wenn's tatsächlich öfter benötigt wird, sollte es eigentlich egal sein, ob das per VBA oder eben, wie oben gezeigt, VBS umgesetzt wird.

Grüße
bastla
Bitte warten ..
Mitglied: TsukiSan
07.12.2012 um 13:19 Uhr
Hallo bastla,

genau so sehe ich das auch!
Aber aus der originalen Fragestellung geht das so nicht hervor.

Mal sehen, was der TO meint

Gruss
Tsuki
Bitte warten ..
Mitglied: elvis0408
07.12.2012 um 21:25 Uhr
Ja genau so wie bastla es schreibt meinte ich das, muss nur einmal gemacht werden dann nicht mehr, brauche da kein script oder so ähnliches zu, ( kanns auch nicht, bin absoluter Neuling in so was) Wenn mir das jetzt jemand erklären könnte wie ich das in Exel umsetze wäre ich sehr Dankbar, wie gesagt bin Neuling, eine erklärung für Blöde wäre schon hilfreich für mich.



Danke

Bert
Bitte warten ..
Mitglied: bastla
07.12.2012 um 21:34 Uhr
Hallo elvis0408!
brauche da kein script oder so ähnliches zu, ( kanns auch nicht, bin absoluter Neuling in so was)
Gerade, wenn du noch nicht einmal verstanden hast, was ich oben für Excel gezeigt habe, solltest Du ein Script verwenden - Dateinamen (mit Pfad), Trennzeichen (Komma oder Semikolon) und Spaltennummer (- 1 rechnen, da ab 0 gezählt wird) in die ersten Scriptzeilen eintragen sollte ja zu schaffen sein ...

Das Script (Tsukis Ansatz oder meiner) ist mit dem Typ ".vbs" zu speichern, per Doppelklick auszuführen und fertig.

Grüße
bastla
Bitte warten ..
Mitglied: elvis0408
07.12.2012 um 21:41 Uhr
Ok danke euch. Werde es dann mal mit euerem Script versuchen.



Melde mich dann obs geklappt hat!




Bert
Bitte warten ..
Mitglied: elvis0408
07.12.2012 um 22:33 Uhr
Hat super geklappt danke, aber noch ne frage, hab gesehen das machmal 2 oder 3 Bilder dabei sein jeweils in spalte 15, 16, 17 wie ergänze ich das scipt dann?

Etwa so

Const AddText = "http://www.meinepage.de/bilder/"
Const Spalte = 15, 16, 17
Const TrennZeichen = ","
Const EingabeDatei = "MeineDatei.csv"
Const AusgabeDatei = "MeineDatei_Add.csv"
Bitte warten ..
Mitglied: bastla
07.12.2012 um 23:30 Uhr
Hallo elvis0408!

Für jede Spalte einzeln das Script anpassen und laufen lassen (also immer nur eine Spalte angeben).

Damit, falls nicht in jeder Zeile in der entsprechenden Spalte ein Bildname steht, keine unnötigen Eintragungen erfolgen, die Zeile 15 (bzw im zweiten Script 12) auf
If Trim(temp1(Spalte)) <> "" Then temp1(Spalte) = AddText & temp1(Spalte)
ändern.

Grüße
bastla
Bitte warten ..
Mitglied: elvis0408
08.12.2012 um 02:44 Uhr
Hat auch geklappt, ihr seit klasse, jungs. Ich wünsche euch allen ein frohes Weihnachtsfest und einen guten Rutsch


Bert
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
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 ...

Batch & Shell
Mehrere AD Benutzer aus CSV Datei mit PowerShell erstellen (1)

Frage von windelterrorist zum Thema Batch & Shell ...

Batch & Shell
CSV-Datei nach Excel importieren (5)

Frage von mrvfbnummer2 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...