Entwickler-Ecke
Dateizugriff - TTimer und TFilestream
Arne - Mo 22.11.10 11:16
Titel: TTimer und TFilestream
Moin zusammen,
ich habe Code, der mittels einer TTimer Komponente in Delphi 2007 periodisch (einmal je Sekunde) aufgerufen wird. Dieser Code simuliert eine Maschine mit ihren Aktorstellungen (on/off). Nun möchte ich diese Aktorstellungen sekündlich in eine CSV Datei schieben. Und hier fängt das Problem an: im Debugger springt er mir über meine Zeile zum Wegschreiben einfach drüber - führt sie nicht aus.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var myFileData : String; begin if myFileStream <> nil then begin myFileData := ... myFileStream.WriteBuffer(PChar(myFileData)^, Length(myFileData)); end; end; |
Packe ich Code zum Öffnen und testweise Beschreiben mit einer Zeile in Form.Create() (also bevor TTimer gestartet wurde), so schreibt er in die Datei. Schreibe ich aus der OnTimer Routine in die Datei, so landet nichts im File, bzw. er springt mir über die Write() Zeile. Geöffnet wird die Datei ebenfalls im OnTimer-Code. Das myFilestream.Free passiert auch in OnTimer-Code. Auch nach Ausführen des Free wird die Datei nicht einmal angelegt.
Darf ich aus der OnTimer Routine nicht in TFilestreams schreiben?
thanx, Arne
Delete - Mo 22.11.10 12:28
Und wo ist der Konstruktor vom myFilestream?
Arne - Mo 22.11.10 13:53
Wenn ich im Konstruktor einen festen Pfad vorgebe
Delphi-Quelltext
1:
| myFileStream.TFileStream.Create('D:\actors.csv', fmCreate); |
dann funktioniert es.
Aber mit
Delphi-Quelltext
1:
| myFileStream.TFileStream.Create('actors.csv', fmCreate); |
oder
Delphi-Quelltext
1:
| myFileStream.TFileStream.Create('.\actors.csv', fmCreate); |
funktioniert es nicht.
Delete - Mo 22.11.10 14:34
Argh!!! Wie oft wird hier gepredigt absolute Pfade zu verwenden? Bestimmt bei jedem Thread, in dem es um das Lesen oder Schreiben von Dateien geht. Spricht sich dass denn nie mal rum?
Martok - Mo 22.11.10 14:50
Luckie hat folgendes geschrieben : |
Argh!!! Wie oft wird hier gepredigt absolute Pfade zu verwenden? Bestimmt bei jedem Thread, in dem es um das Lesen oder Schreiben von Dateien geht. Spricht sich dass denn nie mal rum? |
Wie oft wird hier gepredigt, kein GOTO zu verwenden?
Wie oft wird hier gepredigt, dass man nicht auf true (oder false) vergleicht?
Siehst, worauf ich hinaus will? :roll:
matze - Mo 22.11.10 16:33
mal abgesehen davon ist der gepostete Code doch eh falsch.
Was sollen die vielen Punkte? Müssten da nicht eher := hin?
Delete - Mo 22.11.10 16:42
Das sollen wohl Auslassungszeichen sein.
jaenicke - Mo 22.11.10 16:44
Arne hat folgendes geschrieben : |
Wenn ich im Konstruktor einen festen Pfad vorgebe |
Statt eines festen Pfades wäre wie schon gesagt ein absoluter sinnvoll:
http://www.delphi-library.de/viewtopic.php?p=499701
@
Luckie: er meint die:
Arne hat folgendes geschrieben : |
Delphi-Quelltext 1:
| myFileStream.TFileStream.Create('D:\actors.csv', fmCreate); | |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!