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

gelöst csv per vbs splitten, dann letzte Zeile löschen

Mitglied: Havanna

Havanna (Level 1) - Jetzt verbinden

29.02.2008, aktualisiert 03.03.2008, 7475 Aufrufe, 4 Kommentare

Moin, ich bin der Neue
Und gleich mal mit einer Frage nerven *g*
Arbeite mich gerade in vbs ein.
Ich muss eine csv splitten, in 10000 Zeilen aufgeteilt.
Das klappt auch soweit ganz gut mit dem was ich mir hier im Forum schon zusammengesucht habe.
Haken an der Geschichte: Die gesplitteten Dateien enthalten am Ende immer eine Leerzeile und ich hab bisher keinen Weg gefunden das zu unterbinden.
Wenn ich MaxLine auf 9999 setzte dann hab ich zwar die maximalen 10000 Zeilen, aber trotzdem am Ende eine Leerzeile.
MaxLine auf 10000 bringt mir Dateien mit 10001 Zeilen und halt wieder mit der Leerzeile am Ende :/

Any solutions for me?

Hier mal das was ich mir bisher zusammengeschustert habe:
01.
'SplitTextFile.vbs 
02.
sInFile = WScript.Arguments(0) 
03.
If WScript.Arguments.Count < 2 Then 
04.
    lMaxLine = 10000 
05.
Else 
06.
    lMaxLine = CLng(WScript.Arguments(1)) 
07.
End If 
08.
 
09.
Set fso = Wscript.CreateObject("Scripting.FileSystemObject") 
10.
sPath = fso.GetFile(sInFile).Path 
11.
sPath = Left(sPath, InstrRev(sPath, "\") - 1) 
12.
sOutName =  sPath & "\" & fso.GetBaseName(sInFile) & "_" 
13.
If InstrRev(sInFile, ".") Then 
14.
    sOutType = Mid(sInFile, InstrRev(sInFile, ".")) 
15.
End If 
16.
 
17.
lLineNr=0 
18.
iFileNr=101 
19.
 
20.
Set oOut = fso.OpenTextFile(sOutName & Mid(CStr(iFileNr),2) & sOutType, 2, True) 
21.
Set oIn = fso.OpenTextFile(sInFile, 1) 
22.
Do While Not oIn.AtEndOfStream 
23.
	oOut.WriteLine oIn.ReadLine 
24.
	lLineNr = lLineNr + 1 
25.
	If lLineNr >= lMaxLine Then 
26.
		lLineNr = 0 
27.
		oOut.Close 
28.
		iFileNr = iFileNr + 1 
29.
		Set oOut = fso.OpenTextFile(sOutName & Mid(CStr(iFileNr),2) & sOutType, 2, True) 
30.
	End If 
31.
Loop 
32.
oIn.Close 
33.
oOut.Close 
34.
WScript.Echo "Erledigt :)"
Oder muss ich die Ausgabedatei noch einmal komplett in eine neue schreiben halt bis auf die letzte Zeile?


[Edit Biber] In <code>-Tags gesetzt. [/Edit]
Mitglied: bastla
29.02.2008 um 19:05 Uhr
Hallo Havanna und willkommen im Forum!

Versuch es vielleicht so:
01.
... 
02.
Do While Not oIn.AtEndOfStream 
03.
	oOut.Write oIn.ReadLine 'Zeile ohne Zeilenschaltung schreiben 
04.
	lLineNr = lLineNr + 1 
05.
	If lLineNr >= lMaxLine Then 
06.
		lLineNr = 0 
07.
		oOut.Close 
08.
		iFileNr = iFileNr + 1 
09.
		Set oOut = fso.OpenTextFile(sOutName & Mid(CStr(iFileNr),2) & sOutType, 2, True) 
10.
	Else 'noch nicht letzte Zeile, daher Zeilenschaltung anhängen 
11.
		oOut.Write vbCrLF 
12.
	End If 
13.
Loop 
14.
oIn.Close 
15.
oOut.Close 
16.
WScript.Echo "Erledigt ;-)"
Grüße
bastla

P.S.: Wir hätten hier auch <code>-Tags ...
Bitte warten ..
Mitglied: Havanna
03.03.2008 um 13:38 Uhr
Vielen Dank, funktioniert so.
Minimanko: In der letzten Datei die geschrieben wird ist trotzdem noch am Ende eine Leerzeile.
Aber das ist nicht so schlimm, wenn man das weiß dann kann man die noch mal eben schnell manuell löschen
Bitte warten ..
Mitglied: bastla
03.03.2008 um 13:52 Uhr
Hallo Havanna!

In der letzten Datei die geschrieben wird ist trotzdem noch am Ende eine Leerzeile.
Stimmt leider - dann versuchen wir's eben ersatzweise so:
01.
... 
02.
	Else 'noch nicht letzte Zeile, daher Zeilenschaltung anhängen 
03.
		If Not oIn.AtEndOfStream Then oOut.Write vbCrLF 'falls nicht schon letzte Zeile 
04.
	End If 
05.
...
Grüße
bastla
Bitte warten ..
Mitglied: Havanna
03.03.2008 um 14:24 Uhr
Perfekt.
Selbst wenn in der csv Vorlage eine Leerzeile am Ende ist dann wird diese nicht mitgespeichert.
Vielen Dank
Bitte warten ..
Ähnliche Inhalte
Entwicklung
Zeile in CSV löschen
gelöst Frage von Alex1809Entwicklung3 Kommentare

Moin zusammen, in Zusammenhang mit Power Shell, stehe ich wieder vor einer Wand Ich brauche ein Code, welcher eine ...

Batch & Shell

Powershell - Zeilen in einer csv löschen bis

Frage von Franz-Josef-IIBatch & Shell7 Kommentare

Hello alle miteinander Ich versuche mich (noch immer ;-) noch nicht aufgegeben) im scripten mit der Powershell. Jetzt habe ...

VB for Applications

Mit VBS erste Zeile von CSV ändern

gelöst Frage von apfeltoastVB for Applications5 Kommentare

Hallo zusammen, ich wurde von einem Arbeitskollegen beauftragt eine CSV-Datei automatisch zu editieren. Die Ursprungsdatei hat 44 Spalten und ...

Batch & Shell

Batch um erste Zeile einer CSV zu löschen

gelöst Frage von chris1987.1Batch & Shell6 Kommentare

Hallo, im Rahmen meiner Masterarbeit muss ich eine Vielzahl von csv Dateien untersuchen. Hierbei muss ich einige dieser Dateien ...

Neue Wissensbeiträge
Windows 10
Windows 10 - Probleme mit Point-And-Print
Tipp von emeriks vor 2 StundenWindows 10

Hi, wir kämpfen z.Z. mit einigen Druckertreibern, welche unter Win10 beim Verbinden eines Druckers von Printserver mit dem Dialog ...

Windows 10

Windows 10 1803 - Ihr Roamingbenutzerprofil wurde nicht vollständig synchronisiert

Anleitung von Deepsys vor 3 StundenWindows 10

Bei allen Windows 10 1803 PCs traten Probleme mit den Servergespeicherten Profilen auf. Das Abmelden dauerte sehr lange und ...

Exchange Server
Exchange - Fehler mit 2018-07 Sicherheitsupdate
Tipp von ArnoNymous vor 2 TagenExchange Server7 Kommentare

Hallo, es gibt mal wieder Freude mit den MS-Updates. KB4338814 führt dazu, dass der Exchange keine Mails mehr zustellt. ...

Suche Projektpartner

PC Recycling Projekte mit Flüchtlingen und Kids suchen Materialspenden und Mitmacher!

Erfahrungsbericht von NettePCyclePiraten vor 2 TagenSuche Projektpartner9 Kommentare

Hallöchen liebe Kollegen, ich betreue zwei PC-Gruppen im Raum Dortmund: "Ne#e PCycle Pir@ten" & "PCschr@uber Br@mbauer" Wir sind eine ...

Heiß diskutierte Inhalte
Batch & Shell
PowerShell Auflösung zu .txt (Skript als exe) falsche Auflösung?!
Frage von timsen-96Batch & Shell19 Kommentare

Ich habe folgendes Skript um die Bildschirmauflösung herauszufinden, was auch in PowerShell super funktioniert: Add-Type -AssemblyName System.Windows.Forms $Width = ...

Humor (lol)
Windows 10 - immer für Überraschungen gut
gelöst Frage von HenereHumor (lol)18 Kommentare

Eben nach (beim) installieren der neuesten Updates für 1803 :-) Und sorry fürs Handyfoto, aber der musste sein. Nach ...

Exchange Server
Exchange Backup 10 Jahre Aufbewahrung
Frage von arccosExchange Server17 Kommentare

Hallo zusammen. Aktuell beschäftigen mich ein paar Fragen zum Thema Office365/ Exchange. 1.10 Jahre Aufbewahrungspflicht sicherstellen 2.Kann man als ...

Samba
Samba-NAS Zugriff verweigert
gelöst Frage von VernoxVernaxSamba15 Kommentare

hallo ich schaffe es einfach nicht meinem User Rechte zum schreiben zu geben. Ich habe dies alles auf nem ...