Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi .log Dateien verwenden (https://www.delphipraxis.net/57125-log-dateien-verwenden.html)

Tigermoon 16. Nov 2005 08:53


.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

Sharky 16. Nov 2005 08:55

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.

marabu 16. Nov 2005 09:00

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

Tigermoon 16. Nov 2005 09:10

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....

ichbins 16. Nov 2005 09:17

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;

Xcessive_ 16. Nov 2005 09:23

Re: .log Dateien verwenden
 
Ist eine ganz normale Textdatei. Ich würde die Datei mit einer Stringlist einlesen und weiterverarbeiten.

Delphi-Quellcode:
var
  StringList: TStringList;
begin
  StringList := TStringList.Create;
  StringList.LoadFromFile('C:\Beispiel.log');

  // ...
end;
Ich würde dir ja mehr Information geben, wenn du uns sagen würdest, was du genau machen willst :roll:

Tigermoon 16. Nov 2005 09:29

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

ichbins 16. Nov 2005 09:52

Re: .log Dateien verwenden
 
Du kannst die Datei auch in einer TStringlist laden:

Delphi-Quellcode:
var
  s:tstringlist;
begin
  s:=tstringlist.create;
  s.loadfromfile(DATEINAME);
  s.savetofile(DATEINAME);
  s.count -> Zeilenzahl
  s.strings[17] -> Zeile 17+1 = 18
end;
aus deiner Textdatei kann ich jedenfalls keine User rauslesen... :roll:

Tigermoon 16. Nov 2005 10:00

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:
index_of_handling := my_file.IndexOf('(userHandling) userHandlingImpl.java ');
wie bekomme ich jetzt das hinten dran raus? bapiUserCreate()
das kann immer unterschiedlich sein

Xcessive_ 16. Nov 2005 10:25

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:
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;
Ist an deine angehängte Log-Datei angelehnt. Ich weiß nicht ob die anderen Log-Dateien wirklich genauso aufgebaut sind. Hoffe das hilft.

(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.)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz