Autor Beitrag
Arne
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Mo 22.11.10 11:16 
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.
ausblenden 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)); { diese Zeile überspringt der Debugger einfach und geht direkt zum letztn end! }
  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
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 22.11.10 12:28 
Und wo ist der Konstruktor vom myFilestream?
Arne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Mo 22.11.10 13:53 
Wenn ich im Konstruktor einen festen Pfad vorgebe

ausblenden Delphi-Quelltext
1:
myFileStream.TFileStream.Create('D:\actors.csv', fmCreate);					

dann funktioniert es.
Aber mit
ausblenden Delphi-Quelltext
1:
myFileStream.TFileStream.Create('actors.csv', fmCreate);					

oder
ausblenden Delphi-Quelltext
1:
myFileStream.TFileStream.Create('.\actors.csv', fmCreate);					

funktioniert es nicht.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mo 22.11.10 14:50 
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
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:

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 22.11.10 14:59 
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
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:


Auf die Wiedereinführung der Prügelstrafe?

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: 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?

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 22.11.10 16:42 
Das sollen wohl Auslassungszeichen sein.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 22.11.10 16:44 
user profile iconArne hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich im Konstruktor einen festen Pfad vorgebe
Statt eines festen Pfades wäre wie schon gesagt ein absoluter sinnvoll:
www.delphi-library.d...ewtopic.php?p=499701

@user profile iconLuckie: er meint die:
user profile iconArne hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
myFileStream.TFileStream.Create('D:\actors.csv', fmCreate);