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, 7484 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
Monitoring
Career in Freelancing
Anleitung von rcreddy vor 1 StundeMonitoring3 Kommentare

Freelancing won't be a Gen Y thing, but rather a full-time freelancing career is. It takes a great deal ...

Exchange Server

Exchange 2010-2019 Sicherheitslücke durch Regkey löschen schließen

Information von sabines vor 6 StundenExchange Server

Unter ist eine Lücke im Exchange 2010-2019 beschrieben, die durch das Löschen eines reg keys geschlossen werden kann. In ...

Windows Server
Erneutes Release von WS2019 und Win10 v1809
Tipp von IT-Pro vor 1 TagWindows Server3 Kommentare

Hi, nachdem der Windows Server 2019 und Windows 10 in der Version 1809 aufgrund von verschwinden von Dateien nach ...

CPU, RAM, Mainboards
Spectre Update Tool für ältere PCs
Information von sabines vor 1 TagCPU, RAM, Mainboards6 Kommentare

Mit Hilfe eines Tools wird der betreffende PC permanent von einem USB Stick gestartet, der ein passendes Microcode Update ...

Heiß diskutierte Inhalte
Hardware
Laptop kaputt Hilfe
gelöst Frage von smash0Hardware21 Kommentare

Hi. ich habe mein laptop geputzt und unter wasser also laufenden wasser gehalten. Jetzt geht der nicht mehr an, ...

Batch & Shell
Ordnernamen mit String aus Ziffern-Zahlenkombination erstellen
Frage von MmarKussBatch & Shell16 Kommentare

Hallo zusammen, ich habe ein etwas komplexeres Problem, welches ich selbst mittels einer Batch-Datei lösen will / muss, da ...

Windows Server
Lohnt sich eine Domäne für uns?
Frage von BowsetteWindows Server15 Kommentare

Hallo, ich arbeite in einem kleinen Unternehmen mit mehr als 5 und weniger als 10 Mitarbeitern, also Small Business ...

Viren und Trojaner
Trojaner Office365
Frage von ZeppelinViren und Trojaner14 Kommentare

Liebe Community, ich wende mich an euch, um mehr über den Office365 Trojaner zu erfahren, welcher grade seine Runden ...