Forum: Mikrocontroller und Digitale Elektronik CTR+D (eof) senden


von Dirk Walker (Gast)


Lesenswert?

Hallo,

soweit ich gelesen haben wird ein Dateiende durch eof markiert so das
Programme die auf eine Datei zugreifen erkennen an welcher Stelle sie
das Lesen einer Datei beenden müssen. EOF ist wohl gleich zu setzen mit
CTR+D...
Ich lasse ein Programm eine Datei über Com1 einlesen was auch ganz gut
funktioniert. Die "Datei" wird von einem Atmel ATmega16 gesendet.Alle
Daten werden vom Programm gelesen nur müßte ich am Ende meiner
Übertragung ein eof und somit ein Ctr-D durch den Atmel senden.

Das habe ich bis jetzt noch nicht geschafft...wäre klasse wenn einer
einen Tip oder gar die Lösung für diesen Problem hätte.

Ach ja ich würde die Sache gerne mit Bascom lösen.

Danke
Dirk

von Hegy (Gast)


Lesenswert?

Im Prinzip hast du Recht, nur das TEXTdateien mit Ctrl-D beendet werden.
Bei Binaerdateien geht das natuerlich nicht, weil Ctrl-D auch ein
Zeichen des Binaerstrings sein kann.

von Dirk Walker (Gast)


Lesenswert?

Hallo,

stimmt - das kommt wohl so hin ...bin da aber auch nicht der Experte.
Die Atmel-Schaltung funktioniert - das habe ich mit einem
Terminalprogramm gestestet. Von PHP aus über einen Webserver und dessen
Com-Port zum Atmel gibt es auch keine Probleme nur die Richtung Atmel
zurück zum Com-Port und PHP ist das Problem.

Na mal sehen was man da noch machen kann...

von Lupin (Gast)


Lesenswert?

Schick als erstes die länge der Datei zum Host damit er weiss wie lange
er lesen muss.

von Profi (Gast)


Lesenswert?

Oder Du definierst eine Bytefolge, die im normalen Betrieb nicht
vorkommt, als Ende-Markierung.

Textende ist auch manchmal Ctrl-Z (0x1a = 26), z.B. beim DOS-Befehl
copy con filename.ext
kannst Du einen Text von der Tastatur direkt in eine Datei kopieren.
Beenden mit Ctrl-Z oder F6.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.