Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Mit VBS bei einer Text Datei bei Leerzeilen an bestimmter Stelle den Wert aus oberer Zeile einfügen

Frage Entwicklung VB for Applications

Mitglied: babylonstation5

babylonstation5 (Level 1) - Jetzt verbinden

29.08.2013 um 14:11 Uhr, 1867 Aufrufe, 3 Kommentare

Hallo Team,

habe hier ein Problem mit einer Textdatei.
Die Daten in der textdatei sind Blockweise getrennt (durch eine Leerzeile).
Ich benötige den wert aus einer bestimmten Stelle (immer gleich) der Zeile direkt oberhalb der Leerzeile (an der gleichen Stelle)
Eigentlich muss "nur" der Wert nach unten in die Leerzeile geklappt werden.

Beginne gerade mit VB Script und habe noch keine Lösung.

Mit Excel und Makros geht es, aber die Datei ist zu groß.
Habe hier eine Datei mit ca. 100.000 Zeilen.

Muster der Datei:

10 er345 DE
12 ztr345 DE

32 tu345 ZV
13 ur345 ZV

45 pq345 DE
08 rt345 DE


Und sollte so aussehen:

10 er345 DE
12 ztr345 DE
DE
32 tu345 ZV
13 ur345 ZV
ZV
45 pq345 DE
08 rt345 DE
ZV




Ich hoffe, Ihr habt da eine Lösung.
Danke im Voraus.
Mitglied: 106543
29.08.2013 um 14:15 Uhr
Zitat von babylonstation5:
Hallo Team,
hoi
Muster der Datei:

10 er345 DE
12 ztr345 DE

32 tu345 ZV
13 ur345 ZV

45 pq345 DE
08 rt345 DE


Und sollte so aussehen:

10 er345 DE
12 ztr345 DE
DE
32 tu345 ZV
13 ur345 ZV
ZV
45 pq345 DE
08 rt345 DE
ZV

sorry ich erkenne keine Logik in dem Schnipsel
sollte nicht nach
45 pq345 DE
08 rt345 DE

DE stehen oder vertuh ich mich grade :D

Grüße
Exze
Bitte warten ..
Mitglied: rubberman
29.08.2013 um 21:24 Uhr
Hallo babylonstation5, willkommen im Forum.

Probier mal folgendes Script:
01.
Option Explicit 
02.
 
03.
Const strSrc = "input.txt" 
04.
Const strDest = "output.txt" 
05.
 
06.
Dim objFSO, objSrcFile, objDestFile, strLine, arrLine, boolEmpty 
07.
Const ForWriting = 2 
08.
 
09.
boolEmpty = False 
10.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
11.
Set objSrcFile = objFSO.OpenTextFile(strSrc) 
12.
Set objDestFile = objFSO.OpenTextFile(strDest, ForWriting, True) 
13.
 
14.
While Not objSrcFile.AtEndOfStream 
15.
  strLine = objSrcFile.ReadLine 
16.
  If strLine = "" Then 
17.
    If IsArray(arrLine) And boolEmpty = False Then strLine = arrLine(UBound(arrLine)) 
18.
    boolEmpty = True 
19.
  Else 
20.
    arrLine = Split(strLine, " ") 
21.
    boolEmpty = False 
22.
  End If 
23.
  objDestFile.WriteLine strLine 
24.
Wend 
25.
 
26.
If strLine <> arrLine(UBound(arrLine)) And boolEmpty = False Then objDestFile.WriteLine arrLine(UBound(arrLine)) 
27.
 
28.
objSrcFile.Close 
29.
objDestFile.Close
Die Dateinamen solltest du natürlich anpassen

Grüße
rubberman
Bitte warten ..
Mitglied: babylonstation5
30.08.2013 um 09:49 Uhr
Stimmt natürlich. Mein Fehler. Sorry
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst VbScript: ADODB.Stream: Neue Zeile einfügen (2)

Frage von BirdyB zum Thema VB for Applications ...

Batch & Shell
gelöst Batch sucht bestimmten "text" in einer .txt datei und soll dann die Zeile anzeigen (6)

Frage von MedicalAd zum Thema Batch & Shell ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Neue Wissensbeiträge
Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Freigabe aus anderem Netz nicht erreichbar (27)

Frage von McLion zum Thema Router & Routing ...

Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail (23)

Frage von ahstax zum Thema Visual Studio ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Festplatten, SSD, Raid
gelöst Raidcontroller funktioniert nur, wenn unter Legacy-Boot gestartet wird (14)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...