Einzelnen Beitrag anzeigen

whiteF

Registriert seit: 14. Okt 2008
45 Beiträge
 
#1

Textdatei mit Filelock öffnen und zeilenweise auslesen

  Alt 3. Okt 2016, 00:42
hi,
irgendwie hänge ich gerade und komme hier nicht weiter.
ich möchte eine textdatei mit einem filelock belegen (schreib und leserechte), dann soll dieser textdatei eine zeile hinzugefügt werden und zeilenweise ausgelesen werden, JEDOCH NUR wenn diese textdatei keinen vorherigen filelock von einem anderen programm hat.

das ist bereits dass was ich zusammen gemurckst habe

Es wird nichts in die Textdatei gespeichert.

Wisst ihr wie ich das lauffähig bekomme?

Delphi-Quellcode:
...private
    ChatDateiPfad : String;
    ChatDateiPfadFull : String;
...
procedure TForm1.TimerWatchMessagesTimer(Sender: TObject);
var
  ThisTime : String;
  FileHandle : THandle;
  FileWithLock : TextFile;
begin
  MemoLog.Lines.add('--------------------------------------------------------------------------------------------------------------------------------------------');
  ThisTime := formatdatetime('c', Now);
  MemoLog.Lines.add(ThisTime + ' - ' + 'Checking File: ' + ChatDateiPfadFull + '...');

  if DirectoryExists(ChatDateiPfad) = True then
  begin
    //lblChatDateiPfad.Caption := 'OK';

    if FileExists(ChatDateiPfadFull) = True then
    begin
      //lblChatDateiName.Caption := 'OK';
      MemoLog.Lines.add(ThisTime + ' - ' + 'File is reading: ' + ChatDateiPfadFull + '...');

      FileHandle := FileOpen(ChatDateiPfadFull, fmOpenReadWrite or fmShareDenyWrite);
      try
          AssignFile(FileWithLock, ChatDateiPfadFull);
          ReWrite(FileWithLock);
          FileMode := fmOpenWrite;
          //ReSet(FileWithLock);

          WriteLn(FileWithLock, 'Hello123');
          //ReWrite(FileWithLock);
          //WriteLn(FileWithLock, 'Hello!');

          CloseFile(FileWithLock);

          MemoLog.Lines.add(ThisTime + ' - ' + ' Schreibzugriff AN');

      finally
        FileClose(FileHandle)

    end;

    end
    else
    begin
      MemoLog.Lines.add(ThisTime + ' - ' + 'File not found: ' + ChatDateiPfadFull + '...');
    end;

  end
  else
  begin
    MemoLog.Lines.add(ThisTime + ' - ' + 'Directory not found: ' + ChatDateiPfad + '...');
  end;

end;

Geändert von whiteF ( 3. Okt 2016 um 01:05 Uhr)
  Mit Zitat antworten Zitat