Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probleme bei schreiben in Datei (https://www.delphipraxis.net/35993-probleme-bei-schreiben-datei.html)

gine 14. Dez 2004 14:56


Probleme bei schreiben in Datei
 
Hallo!

Habe folgendes problem: Ich möchte Daten mit Hilfe des AnsyncPro über die ser. schittstelle einlesen. Hierzu benutze ich folgende Prozedur:

Code:
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);

var I : Word;
    C: char;
    daten : string ;
    f: TextFile;
begin
  daten := '';
 AssignFile (f, 'C:\Wetterdaten.txt');
 if not FileExists('C:\Wetterdaten.txt') then
   ReWrite(f) else
  Reset(f);
  for I := 1 to Count do
    begin
        C := ApdComPort1.GetChar;
        daten := daten + C;
       sleep(15);
    end;
  // Daten in Memo schreiben
  Memo1.SelText:= daten;

//Daten in Datei schreiben
  WriteLn(f,daten);
  CloseFile(f);
end;
Führe ich mein Progeramm aus...bekomme ich eine Fehlermeldung ERROR 105...heißt wohl "Datei nicht für Ausgabe geöffnet". WriteLn(f,Daten) ist markiert.

Habe ich nur Rewrite da stehen. Klappt es...es hapert wohl irgendwie am Reset...aber wieso?
Und wir könnte ich den Fehler beheben?
Die befehle an sich müssten stimmen...hab sie schon mehrmals kontrolliert.

Kann mir jemand helfen?

Und weiß jemand wie ich die Procedur TriggerAvail in einer Timer Procedure aufrufen kann?

danke schon mal

Luckie 14. Dez 2004 15:00

Re: Probleme bei schreiben in Datei
 
Nimm mal Delphi-Referenz durchsuchenAppend anstatt Delphi-Referenz durchsuchenReset, du willst ja Daten anhängen. Reset, setzt den Dateizeiger aber auf den Anfang der Datei und dann schläg wohl das Delphi-Referenz durchsuchenWriteln fehl.

Desweiteren solltets du dir angewöhnen deinen Quellcode gescheit zu formatieren:
Delphi-Quellcode:
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);

var
  I           : Word;
  C           : char;
  daten       : string;
  f           : TextFile;
begin
  daten := '';
  AssignFile(f, 'C:\Wetterdaten.txt');
  if not FileExists('C:\Wetterdaten.txt') then
    ReWrite(f)
  else
    Reset(f);
  for I := 1 to Count do
  begin
    C := ApdComPort1.GetChar;
    daten := daten + C;
    sleep(15);
  end;
  // Daten in Memo schreiben
  Memo1.SelText := daten;

  //Daten in Datei schreiben
  WriteLn(f, daten);
  CloseFile(f);
end;
Und stell bitte deine zweite Frage in einen neuen Thread.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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