| |

Visual-Basic EinsteigerVBA Log auswerten | |  | Autor: bool | Datum: 30.08.07 10:01 |
| Hallo ihr lieben,
folgendes:
Ich habe eine Logdatei, die ich mit Hilfe von Word Makros bearbeiten möchte. Es sollen
1. alle leeren Zeilen gelöscht werden
2. nach einem bestimmten Wort immer die 6 darauffolgenden Zeilen gelöscht werden.
3. bei einer Zeile mit einem bestimmten Wort drüber und drunter eine Leerzeile angelegt werden.
Ich muss dazu sagen dass heute der erste Tag ist wo ich mich mit VB auseinander setze. Hab auch schon recht viel gegooglt, und mir irgendwie einen halbwegs passenden Quelltext zamgebastelt, doch leider funktioniert er noch nicht ganz.
Beim Komplieren makiert er 2 Zeilen und schreibt "Benutzerdefinierter Typ nicht definiert". Wie kann ich diesen benutzerdefinierten Typ definieren? ;)
Option Explicit
Sub Start()
Dim Zeilen As Collection
Dim Dateiname As String
'Dateinamen organisieren
Dateiname = ErfrageDateinamen
'Prüfen ob es einen Namen gibt
If Dateiname = "" Then
Exit Sub
End If
'Eine Kollektion der Zeilen holen
Set Zeilen = LeseDateiUni(Dateiname)
'geänderten Inhalt in Datei speichern
SchreibeDatei Dateiname, Zeilen
MsgBox "Fertig!!!", vbInformation
End Sub
Function ErfrageDateinamen() As String
'Mit Datei-Öffnen-Dialog anzeigen
With Application.FileDialog(msoFileDialogOpen)
'...anzeigen
If .Show Then
'Ausgewählte Datei ermitteln und zurückgeben
ErfrageDateinamen = .SelectedItems(1)
End If
End With
End Function
Function LeseDateiUni(Name As String) As Collection _
'<----------------------------------- hier
'Zugriff auf Dateinsystem mit Unicode
Dim fso As New FileSystemObject '
' <----------------------------------------------------------hier
Dim Text As Scripting.TextStream
Dim Zeilen As New Collection
Dim Zeile As String
Dim i As Integer
Set Text = fso.OpenTextFile(Name, , , TristateMixed)
Do Until Text.AtEndOfStream
'Hier gehts los
Zeile = Text.ReadLine()
If (Len(Trim(Zeile)) > 0) And Not (InStr(Zeile, _
"Zeilediegelöschtwerden soll") > 0) Then
' Nächsten 6 zeilen überspringen
If InStr(Zeile, "TEXT JOB") > 0 Then
Zeile = Zeile & vbCrLf
For i = 0 To 5
Text.SkipLine
Next
' Eine Leerzeile davor und dannach einfügen
ElseIf InStr(Zeile, "LIST OF PATCHES") > 0 Then
Zeile = vbCrLf & Zeile & vbCrLf & vbCrLf
' Usw.
Else
Zeile = Zeile & vbCrLf
End If
End If
Zeilen.Add Zeile
Loop
Text.Close
Set LeseDateiUni = Zeilen
End Function
Function LeseDatei(Name As String) As Collection
Dim Dateinummer As Integer
Dim Temp As String
'ein Objekt vom Typ Collection erzeugen
Dim Zeilen As New Collection
'Jede Zeile ist ein Objekt
Dim Zeile As KlasseZeile
'Dateinummer ermitteln
Dateinummer = FreeFile
'Datei zum Lesen öffnen
Open Name For Input As Dateinummer
Do Until EOF(Dateinummer)
'eine Zeile lesen
Line Input #Dateinummer, Temp
'Zeile als Objekt erzeugen
Set Zeile = New KlasseZeile
'Text der Zeile zuweisen
Zeile.Text = Temp
'Zeile in die Collection aufnehmen
Zeilen.Add Zeile
Loop
'Inhalt zurückgeben
Set LeseDatei = Zeilen
Close Dateinummer
End Function
Sub SchreibeDatei(ByVal Dateiname As String, Zeilen As Collection)
Dim Zeile As TextStream
Dim Dateinummer As Integer
'Dateinamen für Ausgabe verändern
Dateiname = ZielDateiname(Dateiname)
'Freie Dateinummer ermitteln
Dateinummer = FreeFile
'Öffnen der Datei zum Schreiben
Open Dateiname For Output As Dateinummer
'in einer Schleife durch alle Zeilen
For Each Zeile In Zeilen
'Prüfen, ob Zeile geschrieben werden muss
If Len(Zeile) > 0 Then
Print #Dateinummer, Zeile
End If
Next
Close Dateinummer
End Sub
Function ZielDateiname(Name As String) As String
'Dateiname um ".modi" erweitern
ZielDateiname = Name & ".modi"
End Function Danke schonmal! |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevCoolbar 3.0 
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|