AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Von anderer Anwendung geöffnete Datei lesen

Ein Thema von Tron4U · begonnen am 26. Mai 2010 · letzter Beitrag vom 28. Mai 2010
Antwort Antwort
Tron4U
(Gast)

n/a Beiträge
 
#1

Von anderer Anwendung geöffnete Datei lesen

  Alt 26. Mai 2010, 20:44
Hi,

Ich möchte eine Datei lesen, die von einer anderen Anwendung bereits geöffnet ist.
Geht das überhaupt und wenn ja wie?

Ich möchte mir einen Monitor für den Apache-Server schreiben, der u.A. auch die Logdateien auswerten soll.
Diese sind aber ständig geöffnet, ein Lesezugriff endet immer mit einer Fehlermeldung.

Weiss Jemand Rat?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: Von anderer Anwendung geöffnete Datei lesen

  Alt 26. Mai 2010, 21:42
Wie wäre es mit der Forensuche?

Sowas wird öfters mal gefragt.
http://www.delphipraxis.net/internal...t.php?t=177742
$2B or not $2B
  Mit Zitat antworten Zitat
Tron4U
(Gast)

n/a Beiträge
 
#3

Re: Von anderer Anwendung geöffnete Datei lesen

  Alt 27. Mai 2010, 15:18
Dankeeee der Link hat mir geholfen :)
  Mit Zitat antworten Zitat
Tron4U
(Gast)

n/a Beiträge
 
#4

Re: Von anderer Anwendung geöffnete Datei lesen

  Alt 27. Mai 2010, 18:25
hallo nochmal,

das listing in dem artikel zudem der link führt
funktioniert bei mir leider nich. ich benutze delphi 7
und bekomme bei der zeile

Zitat:
DecodeHeaderfromFile(FFileText);
die fehlermeldung: undefinierter bezeichner
vom compiler

hier nochmal das komplette listing

Delphi-Quellcode:
procedure TLTC2440_DataList.LoadData(AFileName: String);
var AHStream : THandleStream;
    AFileHandle : THandle;
begin
  FFileName := AFileName;
  Clear;
  AFileHandle := CreateFile(PChar(AFileName), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,
    0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  if AFileHandle <> INVALID_HANDLE_VALUE then begin
    FFileText := TStringList.Create;
    try
        AHStream := THandleStream.Create(AFileHandle);
        try
          FFileText.LoadFromStream(AHStream);
        finally
          FreeAndNil(AHStream);
        end;
      finally
        CloseHandle(AFileHandle);
      end;
      DecodeHeaderfromFile(FFileText);
      DecodeValues(FFileText);
    finally
      FreeAndNil(FFileText);
    end;
  end;
end;

ratloser Klaus :)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: Von anderer Anwendung geöffnete Datei lesen

  Alt 27. Mai 2010, 18:39
Dieses ist ja auch ein spezieller Code für okis Programm
und die erwähnte Funktion gehört zu dessen Programm.

Der für dich interessante Teil ist das CreateFile + der Stream (oder was man sonst für den Zugriff auf dieses Handle verwenden will)

Delphi-Quellcode:
procedure LoadData(const FileName: String);
var Stream : THandleStream;
    FileHandle : THandle;
begin
  FileHandle := CreateFile(PChar(FileName), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,
    0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  if AFileHandle <> INVALID_HANDLE_VALUE then begin
    try
      Stream := THandleStream.Create(FileHandle);
      try

        // mach irgendwas mit dem "Stream"

      finally
        FreeAndNil(Stream);
      end;
    finally
      CloseHandle(FileHandle);
    end;
  end else
    ShowMessage(SysErrorMessage(GetLastError));
end;
$2B or not $2B
  Mit Zitat antworten Zitat
Tron4U
(Gast)

n/a Beiträge
 
#6

Re: Von anderer Anwendung geöffnete Datei lesen

  Alt 28. Mai 2010, 14:15
hi,

danke, ich hab noch nie was mit streams gemacht, aber ich werde mich mal dransetzen.

Klaus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

Re: Von anderer Anwendung geöffnete Datei lesen

  Alt 28. Mai 2010, 14:40
Du kannst auch einfach LoadFromStream z.B. von einer TStringList verwenden.
Wie wolltest du denn vorher die Datei öffnen? (also da wo dir die Fehlermeldung auffiehl)
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 Uhr.
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