![]() |
.log Dateien verwenden
Hallo
Ich habe eine Dateien die die Endungen .log hat sie wird von sap erzeugt ich kann diese Datei mit einem normalen txteditor einsehen Ich müßte diese Datei in mein Programmladen und bestimmte stellen auslesen hat jemand eine idee? Tigermoon |
Re: .log Dateien verwenden
Hai Tigermoon,
die große Frage ist in welchem "Format" die Daten gespeichert sind? Die Dateiendung .log sagt ja nichts über den Inhalt aus (ausser das es sich wohl um Logbuchdaten handelt). Wenn es eine Textdatei ist hast Du ja jetzt schon ein Beispiel. Wenn nicht musst Du schauen ob Du die Information bekommst wie die Daten gespeichert sind. |
Re: .log Dateien verwenden
Noch eine wichtige Frage ist die nach der Größe der Datei. Und wie oft muss sie verarbeitet werden?
Grüße vom marabu |
Re: .log Dateien verwenden
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hänge mal eine solche datei an
in ihr sind benutzter daten gespeichert und auf die datei wird eine benutztersuche angesetzt und dann wird sie etwa drei mal auf verschiedene arten an der stelle ausgelesen die größe kann unterschiedlich sein kommt auf die anzahl benutzer an die aus sap erstellt wurden.... |
Re: .log Dateien verwenden
Du kannst Dateien jeder Endung als Textdatei verwenden:
Delphi-Quellcode:
var
t:textfile; s:string; begin assignfile(t,'C:\test.log'); //Der Textfile den Dateinamen zuweisen reset(t); //Die Textfile öffnen readln(t,s); //Eine Zeile lesen showmessage(s); readln(t,s); //Die nächste Zeile lesen showmessage(s); closefile(t); //Die Textdatei schliessen end; |
Re: .log Dateien verwenden
Ist eine ganz normale Textdatei. Ich würde die Datei mit einer Stringlist einlesen und weiterverarbeiten.
Delphi-Quellcode:
Ich würde dir ja mehr Information geben, wenn du uns sagen würdest, was du genau machen willst :roll:
var
StringList: TStringList; begin StringList := TStringList.Create; StringList.LoadFromFile('C:\Beispiel.log'); // ... end; |
Re: .log Dateien verwenden
@ Ichbins
wenn ich die datei dauernt auf diese weise auslesen dauert das nciht zu lange? @ Xcessive_ In der Datei stehen Benutzernamen nach denen ich suchen muss (über Edit eingegeben) dann muss ich seine Benutzerdaten auslesen (immergleiche stelle) dann das handling das auf ihn ausgeführt wurde (es gibt 4) und seinen status ob das handling erfolgreich war es kann auch passieren das ein benutzer öfters erscheint wenn ein Handling fehlerhaft war und das nächste hat funktioniert die benutzter stehen alle untereinander durch datum und ####### getrennt |
Re: .log Dateien verwenden
Du kannst die Datei auch in einer TStringlist laden:
Delphi-Quellcode:
aus deiner Textdatei kann ich jedenfalls keine User rauslesen... :roll:
var
s:tstringlist; begin s:=tstringlist.create; s.loadfromfile(DATEINAME); s.savetofile(DATEINAME); s.count -> Zeilenzahl s.strings[17] -> Zeile 17+1 = 18 end; |
Re: .log Dateien verwenden
danke für deine hilfe
werde das mit der tstringlist mal versuchen frage ich habe eine dateizeile (userHandling) userHandlingImpl.java bapiUserCreate() ich kann auf (userHandling) userHandlingImpl.java abfragen das ist immer gleich weiß aber nicht in welcher zeile also
Delphi-Quellcode:
wie bekomme ich jetzt das hinten dran raus? bapiUserCreate()
index_of_handling := my_file.IndexOf('(userHandling) userHandlingImpl.java ');
das kann immer unterschiedlich sein |
Re: .log Dateien verwenden
Um zum Beispiel das Passwort des Benutzers auszulesen hätte ich das hier vorgeschlagen (wie ich mich kenne wieder extrem umständlich):
Delphi-Quellcode:
Ist an deine angehängte Log-Datei angelehnt. Ich weiß nicht ob die anderen Log-Dateien wirklich genauso aufgebaut sind. Hoffe das hilft.
procedure RemoveEmptyLines(Strings: TStrings);
var I: Integer; begin for I := Pred(Strings.Count) downto 0 do if Strings[I] = '' then Strings.Delete(I); end; procedure TMainForm.ParseButtonClick(Sender: TObject); var StringList: TStringList; I, J, Temp1: Integer; Temp2, Temp3: string; begin StringList := TStringList.Create; // Log-Datei laden StringList.LoadFromFile(ExtractFilePath(Application.ExeName) + FileNameEdit.Text); // Stringliste von leeren Strings befreien RemoveEmptyLines(StringList); for I := 0 to StringList.Count - 1 do begin // Jede Zeile nach dem Benutzernamen durchsuchen Temp1 := Pos(UserEdit.Text, StringList.Strings[I]); if Temp1 <> 0 then begin Temp3 := StringList.Strings[I + 8]; // + 8 da das Passwort 8 Zeilen weitersteht for J := 28 to Length(Temp3) do // 28 da das Passwort an der 28. Stelle beginnt if Temp3[J] <> '"' then Temp2 := Temp2 + Temp3[J] else Break; Break; end; end; if Temp2 <> '' then MessageDlg('Das Passwort für den Benutzer ist "' + Temp2 + '".', mtInformation, [mbOK], 0) else MessageDlg('Benutzername und Passwort nicht gefunden!', mtError, [mbOK], 0); end; (Verbesserungsvorschläge natürlich erwüschnt. Wüsste sonst nicht wie ich dieses Problem lösen könnte, bin heute noch nicht so auf der Höhe.) |
Re: .log Dateien verwenden
Geh einfach jede Zeile durch:
Delphi-Quellcode:
var
s:stringlist; i,j:integer; rest:string; klammerauf:boolean; result:string; results:tstringlist; begin s.loadfromfile(FILENAME); result:=tstringlist.create; for i:=0 to s.count-1 do begin if copy(s.strings[i],1,length('(userHandling) userHandlingImpl.java ')) = '(userHandling) userHandlingImpl.java ' then begin result:=''; rest:=copy(s.strings[i],length('(userHandling) userHandlingImpl.java '),length(s.strings[i]); klammerauf:=false; for j:=1 to length(rest) do begin case rest[j] of '(': klammerauf:=true; ')': klammerauf:=false; end else if klammerauf then result:=result+rest[j]; end; results.add(result); end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz