FWrite() <> StrFile() [ERLEDIGT]
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
FWrite() <> StrFile() [ERLEDIGT]
Moin,
ich hatte bis vor kurzem eine Protokolldatei laufen, die den Datenempfang über eine serielle Schnittstelle Zeichen für Zeichen gespeichert hat, damit ich diese dann über ein Tool wieder in die serielle Schnittstelle schicken kann. Das klappt auch bisher gut. Ich habe es mit FWrite() gelöst. Dann kam ich auf die Idee es mit StrFile() (Tools III) zu machen. Nur, so wie ich es jetzt sehe, scheint letztere Funktion wohl irgendwie nicht den Erfolg zu bringen. Ich meine seitdem fehlt mir irgendwie das Ende des Satzes. Macht StrFile() irgendwas anders, als FWrite() ? Nur bevor ich jetzt irgendwie in die Tiefen eindringe und es liegt dann doch daran.
ich hatte bis vor kurzem eine Protokolldatei laufen, die den Datenempfang über eine serielle Schnittstelle Zeichen für Zeichen gespeichert hat, damit ich diese dann über ein Tool wieder in die serielle Schnittstelle schicken kann. Das klappt auch bisher gut. Ich habe es mit FWrite() gelöst. Dann kam ich auf die Idee es mit StrFile() (Tools III) zu machen. Nur, so wie ich es jetzt sehe, scheint letztere Funktion wohl irgendwie nicht den Erfolg zu bringen. Ich meine seitdem fehlt mir irgendwie das Ende des Satzes. Macht StrFile() irgendwas anders, als FWrite() ? Nur bevor ich jetzt irgendwie in die Tiefen eindringe und es liegt dann doch daran.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: FWrite() <> StrFile()
Hallo Manfred,
StrFile() schreibt den kompletten String in eine Datei, dass man so eine Druckdatei an LPTx kopiert,
kenne ich, dass damit aber eine Kommunikation über COM möglich sein soll, denke ich nicht.
Außerdem hast du so auch nicht die Kontrolle ob die Puffer überlaufen.
"Zeichen für Zeichen" scheint mir aber schon übertrieben andererseits gibt es ja Hardwarepuffer
StrFile() schreibt den kompletten String in eine Datei, dass man so eine Druckdatei an LPTx kopiert,
kenne ich, dass damit aber eine Kommunikation über COM möglich sein soll, denke ich nicht.
Außerdem hast du so auch nicht die Kontrolle ob die Puffer überlaufen.
"Zeichen für Zeichen" scheint mir aber schon übertrieben andererseits gibt es ja Hardwarepuffer
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: FWrite() <> StrFile()
Was verstehst Du jetzt unter Kommunikation...
Ich "sammel" die Daten in einer Textdatei und schicke sie dann per "Data Com Port Emulator" über Ser1 an Ser2, oder umgekehrt. Und empfange sie dann so, als wenn sie direkt über Ser1/2 gekommen wären.
Soweit hattest Du mich verstanden?
Ich "sammel" die Daten in einer Textdatei und schicke sie dann per "Data Com Port Emulator" über Ser1 an Ser2, oder umgekehrt. Und empfange sie dann so, als wenn sie direkt über Ser1/2 gekommen wären.
Soweit hattest Du mich verstanden?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: FWrite() <> StrFile()
könnte es Chr(26) (Ctrl+Z) sein ?Manfred hat geschrieben:Ich meine seitdem fehlt mir irgendwie das Ende des Satzes. Macht StrFile() irgendwas anders, als FWrite() ?
schreibe die Daten doch 2x und "vergleiche" ( Windiff ) die beiden Dateien
gruss by OHR
Jimmy
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: FWrite() <> StrFile()
Hi Jimmy,
auf die Idee bin ich auch gerade gekommen. Ich schreibe es mal parallel mit den 2 Funktionen weg. Ich warte jetzt nur noch ein Weilchen, bis es genug Daten sind.
auf die Idee bin ich auch gerade gekommen. Ich schreibe es mal parallel mit den 2 Funktionen weg. Ich warte jetzt nur noch ein Weilchen, bis es genug Daten sind.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: FWrite() <> StrFile()
Hallo Manfred,
ich überlege ...
du hast eine funktionierende Lösung mit fwrite(), das für das Schreiben in
offene Dateien geschrieben wurde und die wohl funktioniert.
Du liest auf einer COM und schreibst das Ergebnis in die andere COM damit
du es dort lesen kannst als ob es direkt da gekommen wäre ...
Nun willst du das auf StrFile() umstellen, was nicht funktioniert ...
Nö Manfred, ich verstehe dich nicht aber das ist auch nicht wichtig
PS: So wie ich die Erläuterung zu StrFile() lese, ist der Befehl gedacht um Text
in eine Datei zu schreiben, eventuell sogar an den Anfang einer existierenden ...
Überschreiben, Abschneiden etc. wie soll da was sinnvolles in die COM Schnittstelle kommen ?
Musst du nicht damit rechnen, dass auf COMin noch Daten ankommen während du StrFile() gerade aufrufst ?
ich überlege ...
du hast eine funktionierende Lösung mit fwrite(), das für das Schreiben in
offene Dateien geschrieben wurde und die wohl funktioniert.
Du liest auf einer COM und schreibst das Ergebnis in die andere COM damit
du es dort lesen kannst als ob es direkt da gekommen wäre ...
Nun willst du das auf StrFile() umstellen, was nicht funktioniert ...
Nö Manfred, ich verstehe dich nicht aber das ist auch nicht wichtig
PS: So wie ich die Erläuterung zu StrFile() lese, ist der Befehl gedacht um Text
in eine Datei zu schreiben, eventuell sogar an den Anfang einer existierenden ...
Überschreiben, Abschneiden etc. wie soll da was sinnvolles in die COM Schnittstelle kommen ?
Musst du nicht damit rechnen, dass auf COMin noch Daten ankommen während du StrFile() gerade aufrufst ?
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: FWrite() <> StrFile()
OK Hubert,
ich merke, wir sind wieder von 2 verschiedenen Welten......
Also,
1) ich habe ein Programm, welches Daten über eine serielle Schnittstelle empfängt.
2) das Programm läuft aber dort, wo ich keinen Debugger oder sonstwas zum testen einbinden kann.
3) also schreibe ich die Eingangszeichen direkt in eine Textdatei mit
4) diese Textdatei kopiere ich mir dann auf meinen Rechner.
5) Dann starte ich ein Programm, das die Textdatei einliest und mir in meine serielle Schnittstelle schiebt.
6) jetzt kann ich auf meinem Rechner so tun, als wäre ich vor Ort und würde die Daten direkt erhalten
7) Debugger an und los geht es.
Nix mit Parallelbetrieb usw.
Ich wollte doch nur wissen, ob FWrite() anders schreibt als StrFile(). Warum wird immer alles so kompliziert, wenn ich nur eine kleine Frage stelle?
ich merke, wir sind wieder von 2 verschiedenen Welten......
Also,
1) ich habe ein Programm, welches Daten über eine serielle Schnittstelle empfängt.
2) das Programm läuft aber dort, wo ich keinen Debugger oder sonstwas zum testen einbinden kann.
3) also schreibe ich die Eingangszeichen direkt in eine Textdatei mit
4) diese Textdatei kopiere ich mir dann auf meinen Rechner.
5) Dann starte ich ein Programm, das die Textdatei einliest und mir in meine serielle Schnittstelle schiebt.
6) jetzt kann ich auf meinem Rechner so tun, als wäre ich vor Ort und würde die Daten direkt erhalten
7) Debugger an und los geht es.
Nix mit Parallelbetrieb usw.
Ich wollte doch nur wissen, ob FWrite() anders schreibt als StrFile(). Warum wird immer alles so kompliziert, wenn ich nur eine kleine Frage stelle?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: FWrite() <> StrFile()
Hallo Manfred
Der Unterschied FWrite() -> StrFile() besteht darin dass dir StrFile() die Datei auch erstellt, öffnet, Schreibt und Schliesst. Wenn du als 3 Parameter .t. angibst wird an die Datei angesetzt falls diese Besteht anderfalls wird diese neu erstellt. Ich denke in deinem Fall dürfte es wichtig sein den Rückgabeparameter von StrFile() (Bytes Written) zu prüfen und ggf. erneut zu schreiben. Bei schnell aufeinanderfolgenden Aufrufen kommt es öfters vor dass die Datei noch nicht wirklich geschlossen ist und ein erneuter Aufruf geht dann ins leere da StrFile() nicht auf geöffnete Dateien schreiben kann. Vorallem in Netzwerkumgebung sehr wichtig. Mit Zeichen wie Chr(26) usw. hatte ich noch nie Probleme die wurden immer korrekt geschrieben.
Gruss Carlo
Der Unterschied FWrite() -> StrFile() besteht darin dass dir StrFile() die Datei auch erstellt, öffnet, Schreibt und Schliesst. Wenn du als 3 Parameter .t. angibst wird an die Datei angesetzt falls diese Besteht anderfalls wird diese neu erstellt. Ich denke in deinem Fall dürfte es wichtig sein den Rückgabeparameter von StrFile() (Bytes Written) zu prüfen und ggf. erneut zu schreiben. Bei schnell aufeinanderfolgenden Aufrufen kommt es öfters vor dass die Datei noch nicht wirklich geschlossen ist und ein erneuter Aufruf geht dann ins leere da StrFile() nicht auf geöffnete Dateien schreiben kann. Vorallem in Netzwerkumgebung sehr wichtig. Mit Zeichen wie Chr(26) usw. hatte ich noch nie Probleme die wurden immer korrekt geschrieben.
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: FWrite() <> StrFile()
Hi,
hat sich alles erledigt. Die Konfiguration des "Sendeprogrammes" hat sich geändert, oder was weiß ich, was ich da verstellt hatte. das es genau zu dem Zeitpunkt passierte, als ich die Funktion gewechselt hatte.......
Jetzt scheint es wieder zu klappen.
hat sich alles erledigt. Die Konfiguration des "Sendeprogrammes" hat sich geändert, oder was weiß ich, was ich da verstellt hatte. das es genau zu dem Zeitpunkt passierte, als ich die Funktion gewechselt hatte.......
Jetzt scheint es wieder zu klappen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: FWrite() <> StrFile()
Einfache Antwort: Offensichtlich JAManfred hat geschrieben:Ich wollte doch nur wissen, ob FWrite() anders schreibt als StrFile().
Etwas ausführlicher:
Offensichtlich JA, denn fwrite() schreibt eine Zeichenfolge in einen offenen Kanal
das kann eine Datei sein, aber auch ein COM-Port etc. fwrite() öffnet nicht und schließt nicht.
Es kann in einer Schleife (einem Thread) dauernd Daten empfangen und in einem anderen diese Daten weiterverarbeiten.
fopen, fcreate, fclose regeln das Öffnen bzw. Schließen.
StrFile() - öffnet eine Datei (wie oben bemerkt wurde nur wenn sie noch nicht geöffnet ist ),
schreibt je nach Parameter vorne oder ans Ende die gelieferten Byte,
und schließt die Datei wieder. Was passiert, wenn sich zwei StrFile() Befehle in die Quere kommen ... hab ich nicht probiert.
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: FWrite() <> StrFile() [ERLDIGT]
Sorry Hubert,
offensichtlich NEIN
Wobei natürlich jetzt das Ergebnis gemeint ist. Wenn 2 Sand schüppen, der eine mit einer Schaufel und der andere mit einem Kleinbagger, dann ist der Weg unterschiedlich, aber das Ergebnis dasselbe.
offensichtlich NEIN
Wobei natürlich jetzt das Ergebnis gemeint ist. Wenn 2 Sand schüppen, der eine mit einer Schaufel und der andere mit einem Kleinbagger, dann ist der Weg unterschiedlich, aber das Ergebnis dasselbe.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: FWrite() <> StrFile() [ERLDIGT]
Hallo Manfred,
eben dachte ich, ich spinne ... ich sehe das
Dennoch, deine Frage war "schreibt ... anders" und da ist meine Erklärung 100% richtig
Ob der Unterschied für deine Aufgabe von Bedeutung ist, das hattest du nicht gefragt deckt sich aber mit deinem Anhang, also gut is
eben dachte ich, ich spinne ... ich sehe das
und will antworten mit ZITAT und bekomme das ...Manfred hat geschrieben:Sorry Hubert,
offensichtlich NEIN
Nach einem Refresh ist es klar, du hast die Antwort nachgebessertManfred hat geschrieben:Sorry Hubert,
offensichtlich NEIN
Wobei natürlich jetzt das Ergebnis gemeint ist. Wenn 2 Sand schüppen, der eine mit einer Schaufel und der andere mit einem Kleinbagger, dann ist der Weg unterschiedlich, aber das Ergebnis dasselbe.
Dennoch, deine Frage war "schreibt ... anders" und da ist meine Erklärung 100% richtig
Ob der Unterschied für deine Aufgabe von Bedeutung ist, das hattest du nicht gefragt deckt sich aber mit deinem Anhang, also gut is
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: FWrite() <> StrFile() [ERLDIGT]
Hubert,
wir stehen kurz vor Weihnachten. Der Jahreswechsel wird langsam eingeläutet.
Ich werde NICHT mit Dir Streiten......
wir stehen kurz vor Weihnachten. Der Jahreswechsel wird langsam eingeläutet.
Ich werde NICHT mit Dir Streiten......
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: FWrite() <> StrFile() [ERLDIGT]
ich gebe ja schon nach und verkrieche mich vor dem NAKA (= )Manfred hat geschrieben:Ich werde NICHT mit Dir Streiten......
Gruß
Hubert
Hubert