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

Mitglied: lenzmann

lenzmann (Level 1) - Jetzt verbinden

24.08.2012, aktualisiert 05:44 Uhr, 3809 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
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 16 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 16 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server13 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...