http://dieseyer.de • all rights reserved • © 2011 v11.4

'v5.4***********************************************************
' File: zeilennr-msgbox.vbs
' Autor: dieseyer@gmx.de
' http://dieseyer.de
'
'
'
'***************************************************************

Option Explicit ' Siehe http://dieseyer.de/dse-wsh-lernen.html#OptionExpl

Dim fso : Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Dim WSHShell : Set WSHShell = WScript.CreateObject("WScript.Shell")
Dim WSHNet : Set WSHNet = WScript.CreateObject("WScript.Network")
Dim WshSysEnv : Set WshSysEnv = WSHShell.Environment("SYSTEM")
Dim oArgs : Set oArgs = Wscript.Arguments

Dim Pfad : Pfad = fso.GetParentFolderName( WScript.ScriptFullName )

Dim Pos, Txt, Tst, i, n, PC, DateiName
Dim FileOut, FileIn

'hole alle Argumente
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For i = 0 to oArgs.Count - 1 ' hole alle Argumente

If i = 0 Then DateiName = oArgs.item(i)
Next


Call ZeilenNrMsgBox( DateiName )

' MsgBox "Das ist das Ende . . . ", , WScript.ScriptName

'***************************************************************
Sub ZeilenNrMsgBox( Datei )
'***************************************************************

' alle Zeilen lesen und an Array übergeben
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Txt = fso.GetParentFolderName( Datei ) & "\" & fso.GetBaseName( Datei ) & "-." & fso.GetExtensionName( Datei )

If not fso.FileExists( Txt ) Then fso.CopyFile Datei, Txt, True

Set FileIn = FSO.OpenTextFile(Datei, 1 ) ' Datei zum Lesen öffnen
i=0
Do While Not (FileIn.atEndOfStream) ' wenn Datei nicht zu ende ist, weiter machen
ReDim Preserve Zeile(i)
Zeile(i) = FileIn.Readline
i = i + 1
Loop

If i < 1 Then
ReDim Preserve Zeile(i)
Zeile(i) = "Leerdatei"
End If
FileIn.Close
Set FileIn = nothing



' Array bearbeiten; hier: Zeilennummer einfügen
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
for i = LBound( Zeile ) to UBound( Zeile )
If InStrRev( Zeile(i), " :: " ) > 4 Then

' Zeilennummer auf vier Stellen mit führender 0 erweitern
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
n = i + 1
If Len( n ) = 1 Then n = "0" & n
If Len( n ) = 2 Then n = "0" & n
If Len( n ) = 3 Then n = "0" & n




Pos = InStrRev( Zeile(i), " :: " )

' If i < 73 AND i > 60 Then InputBox Zeile(i), "76 : " & Pos, Zeile(i)
' MsgBox Txt, 4096, "67 : " & Anfang - " & WScript.ScriptName


' das Anführungszeichen vor dem " :: " suchen
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If Mid( Zeile(i), Pos - 5, 1 ) = """" Then
' if i < 130 Then MsgBox "1>" & Left( Zeile(i), Pos - 4 ) & "<1" & vbCRLF & "2>" & Mid( Zeile(i), Pos + 3 ) & "<2" & "<==" , 4096, n & " : 74 : "
Zeile(i) = Left( Zeile(i), Pos - 5 ) & n & " :: " & Mid( Zeile(i), Pos + 3 )
End If

If Mid( Zeile(i), Pos - 4, 1 ) = """" Then
' if i < 130 Then MsgBox "1>" & Left( Zeile(i), Pos - 4 ) & "<1" & vbCRLF & "2>" & Mid( Zeile(i), Pos + 3 ) & "<2" & "<==" , 4096, n & " : 74 : "
Zeile(i) = Left( Zeile(i), Pos - 4 ) & n & " :: " & Mid( Zeile(i), Pos + 3 )
End If

If Mid( Zeile(i), Pos - 3, 2 ) = "o " Then Zeile(i) = Left( Zeile(i), Pos - 3 ) & " " & n & " :: " & Mid( Zeile(i), Pos + 3)
If Mid( Zeile(i), Pos - 4, 2 ) = "o " Then Zeile(i) = Left( Zeile(i), Pos - 4 ) & " " & n & " :: " & Mid( Zeile(i), Pos + 3 )
If Mid( Zeile(i), Pos - 5, 2 ) = "o " Then Zeile(i) = Left( Zeile(i), Pos - 5 ) & " " & n & " :: " & Mid( Zeile(i), Pos + 3 )
If Mid( Zeile(i), Pos - 6, 2 ) = "o " Then Zeile(i) = Left( Zeile(i), Pos - 6 ) & " " & n & " :: " & Mid( Zeile(i), Pos + 3 )

If Mid( Zeile(i), Pos - 3, 1 ) = """" Then
' If i < 73 AND i > 60 Then MsgBox Zeile(i), , "76 : "
' if i < 130 Then MsgBox "1>" & Left( Zeile(i), Pos - 3 ) & "<1" & vbCRLF & "2>" & Mid( Zeile(i), Pos + 3 ) & "<2" & "<==" , 4096, n & " : 86 : "
Zeile(i) = Left( Zeile(i), Pos - 3 ) & n & " :: " & Mid( Zeile(i), Pos + 3)
End If

Zeile(i) = Replace( Zeile(i), " :: ", " :: " )
Zeile(i) = Replace( Zeile(i), " :: " , " :: " )
Zeile(i) = Replace( Zeile(i), " :: " , " :: " )
Zeile(i) = Replace( Zeile(i), " :: " , " :: " )
End If
next


' Array in (Ziel-) Datei schreiben
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

' Datei = fso.GetParentFolderName( Datei ) & "\" & fso.GetBaseName( Datei ) & "--." & fso.GetExtensionName( Datei )
' MsgBox Datei : WScript.Quit
Set FileOut = FSO.OpenTextFile( Datei , 2, true) ' Datei zum Screiben öffnen; 2: immer neu anlegen

' FileOut.WriteLine( vbCRLF & now() & vbCRLF ) ' nur Für Testzwecke

for i = 0 to ubound( Zeile )
FileOut.WriteLine( Zeile(i) )
next

FileOut.Close
Set FileOuT = nothing


' (Ziel-) Datei anzeigen
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' WSHShell.run "notepad """ & Datei & """" , , True ' True: Skriptabarbeitung wartet bis Programm (notepad) beendet ist

End Sub ' ZeilenNrMsgBox( Datei )

http://dieseyer.de • all rights reserved • © 2011 v11.4