Советы по Delphi

         

Разбиение и сборка файла


Не так сложно, вот как это может выглядеть:

    inf:   file; outf:  file; size:  longint; outsize: longint; amt:    word; amtRead: word;
assignfile (inf, 'входной файл'); reset (inf, 1); size := fileSize (inf);

repeat showMessage ('Вставьте дискету в дисковод "A"')  { или "B", а лучше позвольте их определять } assignFile (outf, 'A: выходной файл'); rewrite (outf, 1); outsize := diskFree (1);  { или 2, если это дисковод "B" } while (outsize > 0) and (size > 0) do begin amt := sizeof(buf); if amt > outsize then amt := outsize; blockRead (inf, buf, amt, amtRead); blockWrite (outf, buf, amtRead); dec (outSize, amtRead); dec (size, amtRead); end; closeFile (outf); until size <= 0; closeFile (inf);

Писалось все "от руки", поэтому синтаксис может быть с ошибками. Правильным было бы добавление кода, который позволит пользователю определить используемый дисковод ("A" или "B"), задание именной схемы для восстановления информации, если один из дисков испортится и пр.

Сборка происходит аналогично: открываем на диске выходной файл, просим пользователя вставить дискетту, blockRead/blockWrite с дискеты на жесткий диск, просим пользователя вставить другую дискету, пока куски файла не считаются полностью. [001684]



Содержание раздела