Kopieren mit xdos

1, 2

Re: Kopieren mit xdos

von HiassofT » Fr 5. Mär 2010, 17:22
eda70 hat geschrieben:
Dietrich hat geschrieben:Letztendlich kann Dir das aber egal sein, da Du bei POINT nur Daten mitgeben darfst , die Du per NOTE ermittelt hast...

Ach wenn ich mit Note den File-Anfang ermittelt habe und die Filelänge, dann kann man zwischen den Werten wild Pointen, man muss nur aufpassen, dass man nicht über 125 beim Byte kommt und nicht in den toc und vtoc pointet :)

Das würde ich auf keinen Fall machen. Wie Dietrich schon geschrieben hat: Du darfst POINT nur mit den Werten aufrufen die Dir NOTE zurückgeliefert hat.

Abgesehen von TOC und VTOC können auch andere Files "dazwischen" liegen oder einzelne Sektoren können nur teilweise mit Daten gefüllt sein. Solche Fälle können immer dann auftreten wenn Du im "Append" Mode Daten an ein File anhängst.

so long,

Hias

Re: Kopieren mit xdos

von eda70 » Fr 5. Mär 2010, 17:50
Bisher funktioniert es wunderbar, aber ich habe auch nix appended.
Gibt es sowas wie eine Fragmentierung auf der Diskette?
Oder wird einfach eine Lücke gelassen?

Angenommen ich habe zwischen zwei Datendateien ein Basicprogramm.
Die Datendateien bleiben unverändert und das BAsicprogramm braucht nach Änderungen nun mehr Sektoren.
Wie wird das Programm abgelegt?

Re: Kopieren mit xdos

von HiassofT » Fr 5. Mär 2010, 19:43
eda70 hat geschrieben:Gibt es sowas wie eine Fragmentierung auf der Diskette?

Ja, natürlich.

Angenommen ich habe zwischen zwei Datendateien ein Basicprogramm.
Die Datendateien bleiben unverändert und das BAsicprogramm braucht nach Änderungen nun mehr Sektoren.
Wie wird das Programm abgelegt?

Zuerst löscht das DOS das Basic-Programm, danach belegt es die freien Sektoren der Disk (üblicherweise ab dem niedrigsten freien Sektor).

War das Programm zB vorher in den Sektoren 100-199, so kann das neue Programm zB die Sektoren 100-199 und 250-269 belegen. Oder auch 10-19 und 100-199 und 240-249 (wenn Du zB eine Datei gelöscht hast, die in den Sektoren 10-19 war).

Wenn Du Daten an eine bestehende Datei anhängst, kann je nach DOS entweder der letzte (noch nicht komplett volle) Sektor vorher aufgefüllt werden (MyDOS macht das glaubich so) oder der letzte Sektor der Datei bleibt so wie er war und die zusätzlichen Daten beginnen ab einem neuen Sektor (DOS 2.x macht das so).

Die Angabe der Länge einer Datei im Directory (in Sektoren) sagt also relativ wenig über die wahre Dateigrösse aus. Mit folgendem Einzeiler kannst Du zB unter DOS 2.5 eine Datei mit 0 Bytes erstellen die 100 Sektoren auf der Disk belegt:
Code: Alles auswählen
OPEN #1,8,0,"D:X":CLOSE #1:FOR I=1 TO 99:OPEN #1,9,0,"D:X":CLOSE #1:NEXT I

Um die wahre Länge einer Datei zu ermitteln bleibt nur alle Bytes einzulesen.

so long,

Hias
1, 2