Wenn ich eine Textdatei programmatisch erzeuge, sollte ich den ASCII-EOF-Marker (Dezimalwert 26) am Ende der Datei einfügen?EOF Marker beim Erzeugen von Textdateien?
Tun die .NET Programmiersprachen das automatisch?
Wenn ich eine Textdatei programmatisch erzeuge, sollte ich den ASCII-EOF-Marker (Dezimalwert 26) am Ende der Datei einfügen?EOF Marker beim Erzeugen von Textdateien?
Tun die .NET Programmiersprachen das automatisch?
Es gibt keinen Grund mehr für den ^Z
EOF
Marker (und es war schon lange nicht mehr) - es ist ein Vorübergehender von CP/M, der keine exakten Längen für Dateigrößen im Verzeichnis unterstützte - Dateigrößen waren in Bezug auf die Anzahl der 128-Byte-Blöcke, also um eine Datei auf einer Nicht-128-Byte-Grenze zu beenden, mussten Sie ein EOF-Zeichen verwenden.
Da frühe Versionen von MS-DOS stark von CP/M beeinflusst wurden (und Microsoft wollte, dass CP/M-Programme problemlos portiert werden konnten), blieb die Konvention hängen.
Ihr Programm sollte Textdateien mit den entsprechenden Attributen öffnen, so dass die Betriebssystem- und/oder Sprachlaufzeit ein EOF signalisiert, wenn es eine ^Z
sieht, falls Sie auf eine Datei stoßen, die die Konvention verwendet. Aber es gibt keine Notwendigkeit, eine mehr zu schreiben.
Eine mögliche Ausnahme ist, wenn Sie eine Binärdatei haben, aber am Anfang einen Text eingeben möchten, dann eine ^Z
, dann Ihre Daten. Wenn jemand es auf die Konsole ablegt, sagt es etwas Intelligentes anstatt Müll zu spucken. Es gibt nicht viele Gründe, dies zu tun, aber ich habe es selten gesehen.
aus Wikipedia (http://en.wikipedia.org/wiki/CP/M):
Dateigröße als die Anzahl von 128-Byte-Datensätzen angegeben wurde (direkt auf Plattensektoren entsprechend auf 8-Zoll-Laufwerke) von einer Datei belegt auf der Scheibe. Es gab keine allgemein unterstützte Möglichkeit, bytegenau Dateigrößen anzugeben. Die aktuelle Größe einer Datei wurde in der Datei Steuerblock (FCB) der Datei durch das Betriebssystem verwaltet. Da viele Anwendungs Programme (zB Texteditoren) bevorzugen mit Dateien als Sequenzen von Zeichen zu behandeln und nicht als Sequenzen von Aufzeichnungen, vereinbarungsTextDateien wurden mit einem Steuer-Z-Zeichen (ASCII SUB, hexadezimal 1A beendet). Ermittlung des Endes einer Textdatei daher beteiligt Prüfung der letzten Datensatz der Datei, um die Terminierungssteuerung-Z zu finden. Dies bedeutete auch , dass das Einfügen eines Steuerelement-Z-Zeichen in die Mitte einer Datei in der Regel die Wirkung des Abschneidens der Text Inhalt der Datei hatte.
Nein. Das EOF wird von den IO-Funktionen des Betriebssystems beim Lesen der Datei erzeugt. Es sollte nicht in der Datei in modernen Systemen gespeichert werden.
26 ist nicht EOF. Es ist das Microsoft behandeln es als Ende der Datei. Siehe http://www.asciitable.com/, sollte der echte EOF 4 –
verwenden Es ist ein strittiger Punkt, aber 4 ist auch nicht wirklich EOF. Es ist "Ende der Übertragung". –