Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Datei öffnen, die von einem anderen Prozess benutzt wird

  Alt 18. Mai 2010, 12:29
Hi Leute,

sorry, dass es so lange gedauert hat. Lag aber nicht an den paar Zeilen, musste noch einige andere Probleme lösen.
Himitsu hat das richtig erkannt. Ich habe meinen Code wie folgt angepasst:
Delphi-Quellcode:
procedure TLTC2440_DataList.LoadData(AFileName: String);
var AHStream : THandleStream;
    AFileHandle : THandle;
begin
  FFileName := AFileName;
  Clear;

  if not FileExists(AFileName) then
    Exit;
  AFileHandle := INVALID_HANDLE_VALUE;
  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
      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;
Damit ist das Problem vom Tisch. Nochmals herzlichen Dank für den Tip.
@Luckie: Ja, meine Bemerkung mit "Exclusive" war etwas vorschnell und nicht unbedingt korrekt. Hatte aus diesem Grund auch den Hinweis mit dem Editor angefügt. Aber im Grunde hat himitsu mich richtig verstanden.

Dank an alle und Gruß

oki
42
  Mit Zitat antworten Zitat