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

LOGDATEI DURCHSUCHEN UND DARAUFFOLGENDE ZEILEN KOPIEREN

Frage Entwicklung VB for Applications

Mitglied: lenzmann

lenzmann (Level 1) - Jetzt verbinden

24.08.2012, aktualisiert 05:44 Uhr, 3804 Aufrufe, 10 Kommentare

Bin ein blutiger Anfänger und für jede Hilfe sehr froh.

Habe verschiedene Logfiles, welche unterschiedliche grössen haben können.Jedes files hat abschnitte welche aus 15 zeilen bestehen und immer drei mal die gleiche 18 stellige nummer haben.(Druckbefehl für eine Labeldrucker).

Möchte nu8n mittels VBA ein File mit einer Nummer, von der ich weiss das sie vorkommt, durchsuchen und bei der ersten Zeile die diese nummer hat stoppen, drei zeilen nicht beachten und dann sechs Zeilen kopieren.


die files sehen ungefähr so aus:




2011-10-01 10:25:54.133 MPP INFO Warten auf Antwort des Printers
2011-10-01 10:25:54.742 MPP INFO Printer zugewiesen: false
2011-10-01 10:25:54.742 MPP INFO PrinterData_inquiry zum Markpoint Printer gesendet
2011-10-01 10:25:54.742 MPP INFO InquiryBefehl: !S1

2011-10-01 10:25:54.742 MPP INFO Warten auf Antwort des Printers
2011-10-01 10:25:54.945 MPP INFO Received data:
2011-10-01 10:25:54.945 MPP INFO Printer zugewiesen: false
2011-10-01 10:25:54.961 BPort INFO Opening port to Mettler: COM3
2011-10-01 10:25:54.992 METT INFO BalanceData_inquiry zur Waage gesendet
2011-10-01 10:25:54.992 METT INFO InquiryBefehl: I2

2011-10-01 10:25:54.992 METT INFO Warten auf Antwort der Waage
2011-10-01 10:25:55.195 METT INFO BalanceData_inquiry zur Waage gesendet
2011-10-01 10:25:55.195 METT INFO InquiryBefehl: I2
011-10-01 10:26:01.648 openPPort INFO Opening port to Printer {0} COM6
2011-10-01 10:26:02.414 toprinter INFO sent to printer...123456789123456789 .....................DAS IST DIE ERSTE
LEERZEILE
LEERZEILE
LEERZEILE
!C ....von hier an kopieren
!Y24 60
!Y35 10
!Y42 1
!F C S 55 840 C 240 4 43 " (00) 123456789123456789 (413) ".........................HIER DIE ZWEITE
!F S S 15 930 C 10 12 94029" (00) 123456789123456789 (413) ".......................UND DIE DRITTE
!P2 .... hier aufhören zu kopieren

Hoffe das irgend jemand mir helfen kann

gruss lee
Mitglied: bastla
24.08.2012, aktualisiert 25.08.2012
Hallo lenzmann und willkommen im Forum!

Gundsätzlich sähe das für Dein Beispiel so aus:
01.
Ein = "D:\Dein.log" 
02.
Aus = "D:\Kopie.txt" 
03.
Such = "123456789123456789" 
04.
Abstand = 3 'Zeilen nach Suchbegriff überspringen 
05.
Anzahl = 6' Zeilen kopieren 
06.
 
07.
Set fso = CreateObject("Scripting.FileSystemObject") 
08.
T = Split(fso.OpenTextFile(Ein).ReadAll, vbNewline) 
09.
Do While i < UBound(T) - Abstand - Anzahl 'nur bis Dateiende - Abstand - Anzahl Zeilen lesen 
10.
    If InStr(T(i), Such) >0 Then 'Suchbegriff in Zeile? 
11.
        i = i + Abstand 'Zeilen überspringen 
12.
        For j = 1 To Anzahl 'angegebene Anzahl von Zeilen ... 
13.
            i = i + 1 'nächste Zeile 
14.
            Ausgabe = Ausgabe & vbNewline & T(i) '... der Ausgabe hinzufügen (mit Zeilenschaltungen) 
15.
        Next 
16.
    End If 
17.
    i = i + 1 'nächste Zeile 
18.
Loop 
19.
fso.CreateTextFile(Aus).Write Mid(Ausgabe, 3) 'ohne Leerzeile am Anfang in Datei schreiben
Grüße
bastla
Bitte warten ..
Mitglied: lenzmann
24.08.2012 um 15:59 Uhr
vielen dank werde das heute abend sofort ausprobieren,

lee
Bitte warten ..
Mitglied: lenzmann
25.08.2012, aktualisiert um 14:18 Uhr
habe es jetzt getestet
funktioniert genau wie es mir vorgestellt habe,
Bitte warten ..
Mitglied: bastla
25.08.2012, aktualisiert um 10:23 Uhr
Hallo lenzmann!
Wenn sie aber irgenwo in der mitte stehen, bleibt das resultat null
Kann ich mir zwar nicht erklären (da der Ablauf des Scripts ja immer gleich ist), aber versuch es mal mit dieser Variante:
01.
Ein = "D:\Dein.log" 
02.
Aus = "D:\Kopie.txt" 
03.
Such = "123456789123456789" 
04.
Abstand = 3 'Zeilen nach Suchbegriff überspringen 
05.
Anzahl = 6' Zeilen kopieren 
06.
 
07.
Set fso = CreateObject("Scripting.FileSystemObject") 
08.
Set DateiEin = fso.OpenTextFile(Ein) 
09.
Set DateiAus = fso.CreateTextFile(Aus) 
10.
Do While Not DateiEin.AtEndOfStream 'alle Zeilen der Eingabedatei verarbeiten 
11.
    Zeile = DateiEin.ReadLine 'Zeile einlesen 
12.
    If InStr(Zeile, Such) > 0 Then 'Suchbegriff in Zeile? 
13.
        For i = 1 To Abstand '"Abstand" Zeilen ... 
14.
            DateiEin.SkipLine '... überspringen 
15.
        Next 
16.
        For i = 1 To Anzahl '"Anzahl" Zeilen ... 
17.
            DateiAus.WriteLine DateiEin.ReadLine '... einlesen und in die Ausgabedatei schreiben 
18.
        Next 
19.
    End If 
20.
Loop 
21.
MsgBox "Fertig."
Bitte warten ..
Mitglied: lenzmann
25.08.2012, aktualisiert um 14:18 Uhr
vielen dank für deine hilfe lee
Bitte warten ..
Mitglied: lenzmann
25.08.2012, aktualisiert um 14:19 Uhr
habe noch vergessen zu sagen das ich folgende Datentypen deklariert habe

Dim Aus As String
Dim Ein As String
Dim Such As String
Dim Abstand As Integer
Dim Anzahl As Integer
Dim fso As Object
Dim DateiEin As Object
Dim DateiAus As Object
Dim Zeile As Object
Dim WScript As Object

lee
Bitte warten ..
Mitglied: bastla
25.08.2012 um 10:22 Uhr
Hallo lenzmann!

Eigentlich war aber die Rede von VBA (bzw ist das Script als VBS geschrieben; ich ändere die letzte Zeile auf "MsgBox", dann passt's für beide) und nicht von Visual Basic - also versuch es am einfachsten, indem Du den Code als ".vbs" speicherst und ausführst ...
Die Deklarationen kannst Du Dir sparen (oder richtig vornehmen - "Zeile" ist ein String und "WScript" wird keinesfalls benötigt).

Grüße
bastla
Bitte warten ..
Mitglied: lenzmann
25.08.2012, aktualisiert um 14:19 Uhr
Guten Morgen
Tut mir leid dass ich mich falsch ausgedrückt habe.
Der Script , als VBS gestartet läuft exact so wie ich es mir vorgestellt habe.



Lee
Bitte warten ..
Mitglied: bastla
25.08.2012 um 13:30 Uhr
Hallo lenzmann!

Schrei doch bitte Deine Ideen nicht so raus ...
Ich hoffe, Du findest es auch von mir nicht unverschämt, Dich darauf hinzuweisen, dass Du das Lesen und Schreiben von Textdateien noch oft brauchen wirst und es daher vorteilhaft sein dürfte, Dir das (auch die Online-Hilfe widmet sich diesem Thema) selbst zu erarbeiten - und viel mehr passiert in dem Script ja nicht (und schon gar nicht kommentarlos ) ...

Grüße
bastla
Bitte warten ..
Mitglied: lenzmann
25.08.2012 um 14:16 Uhr
ok werde es mal versuchen, trotzdem vielen dank und noch ein schönes wochende

lee
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Jede Zeile einer Textdatei bis zum Trennzeichen durchsuchen
gelöst Frage von karolsonVB for Applications6 Kommentare

Hallo an alle, Ich möchte mit VBA eine 50MB große Textdatei nach einer Zeichenkette durchsuchen und einige Begriffe aus ...

Ausbildung
Durchsuchen alle Zeilen einer Textdatei und die gleiche Zeilen herausfiltern und anzeigen
gelöst Frage von MihailAusbildung17 Kommentare

Guten Abend, Ich melde mich ernuet mit der Bitte mir falls möglich zu helfen. Ich muss aus einigen txt-Dateien ...

Batch & Shell
Ordner durchsuchen und Dateien kopieren
gelöst Frage von friedensbringerBatch & Shell4 Kommentare

Hallo zusammen, gibt es mittels Batchfile eine Möglichkeit in einem definierten Ordner inklusive allen Unterordnern (mehrere Ebenen möglich) nach ...

Visual Studio
String oder Textbox durchsuchen und Zeile zurückgeben
gelöst Frage von deathhollyVisual Studio2 Kommentare

Hallo, ich habe mal wieder eine Frage. Ich habe eine Listbox in der ich Txt aufliste. Diese werden dann ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 5 StundenWindows 101 Kommentar

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 7 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner2 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Brainstorming, einfachste Option 1 getrenntes LAN (mit WAN zugang)
Frage von 132954LAN, WAN, Wireless13 Kommentare

Hi, folgendes: Wir bekommen eine Glasfaser Leitung, Und das sollte Optional so aussehen: Ein Modem/Router für das WAN, ein ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...