Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Копирование файла с CD-ROM


Автор: tht 5.8.2007, 03:24
может я что-то не так делаю. ну в общем указываю путь исходного файла который находится на CD-ROM, потом вроде как пытаюсь открыть его, вроде как на чтение. выдает ошибку #5
Код

program copyfile;
uses System, CRT;
var
  SrcFileHand: FILE;
  DstFileHand: FILE;
  ResultStr  : string;
  ReadSize   : Longint;
  WriteSize  : Longint;
  ReadBuffer : array[0..61000] of byte;
begin
  Assign(SrcFileHand,'E:\test.txt');  {* это файл на CD-ROM'e *}
  Reset(SrcFileHand);
  Assign(DstFileHand,'D:\dst.txt');   {* это файл на жестком диске *}
  ReWrite(DstFileHand);
  repeat
    BlockRead(SrcFileHand,ReadBuffer,61000,ReadSize);
    WriteSize := ReadSize;
    BlockWrite(DstFileHand,ReadBuffer,WriteSize);
  until Eof(SrcFileHand) = true;

  close(SrcFileHand);
  close(DstFileHand);
  WriteLn('Press any key');
  ReadKey;
end.
 почему выдает эту ошибку я не знаю. как можно стандартными средствами паскаля скопировать файл с CD-ROM'a ? может я что-то не так делаю...

Автор: volvo877 5.8.2007, 08:45
tht, только что проверил твою программу с небольшими изменениями - все работает, файл с CD прекрасно копируется. 2 замечания:

1)
Код

  ReadSize   : Word;
  WriteSize  : Word;
(иначе в Турбо Паскале код не компилируется)

2)
Код

  Assign(SrcFileHand,'E:\test.txt');
  Reset(SrcFileHand, 1); { <-- !!! }
  Assign(DstFileHand,'D:\dst.txt');
  ReWrite(DstFileHand, 1); { <-- !!! }
(иначе может быть так:

Цитата(TP Help)
The entire transferred block occupies at most Count symbol * RecSize bytes, where RecSize is the record size specified when the file was opened (or 128 if the record size was not specified). An error occurs if Count symbol * RecSize is greater than 65,535 (64K).

 )

Автор: tht 5.8.2007, 12:51
у меня TMT Pascal и все равно выдает ошибку #5

Автор: volvo877 5.8.2007, 13:49
Проверяй свой CD и файл, читается ли он другими средствами, в частности... Программа корректно отработала под Turbo Pascal/Free Pascal/TMT, так что проблема не в ней, а в чем-то другом...

Права на чтение/запись у тебя есть, кстати?

Автор: tht 5.8.2007, 14:41
Цитата
Права на чтение/запись у тебя есть, кстати?
 в каком смысле ??? немного не понимаю. может антивирус не дает ? или еще что нибуть ((( не знаю даже.

кстати у меня по идее так то DVD-ROM , но разницы то ведь нет ? что CD-ROM что DVD-ROM...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)