Вниз
Скачать: CL | DM;

Как разбить файл на части, а потом его собрать?   Найти похожие ветки 

← →
Генри ©   (2005-02-24 22:42) [0]

Здравствуйте!
У меня вопрос - как разбить файл на части, а потом его собрать? Спасибо!


← →
Anatoly Podgoretsky ©   (2005-02-24 22:46) [1]

Открыть новый файл, записать Н байт, закрыть, открыть следующий файл, записать Н байт, закрыть, и так до конца входного файла.


← →
Eraser ©   (2005-02-24 23:20) [2]

Генри ©

На какие части?


← →
Генри ©   (2005-02-24 23:41) [3]

2 Eraser
на равные по размеру.


← →
Генри ©   (2005-02-24 23:43) [4]

Пожалуйста, подскажите как считывать H байтов из файла??
с помощью какой функции??


← →
Palladin ©   (2005-02-24 23:45) [5]

BlockRead


← →
Eraser ©   (2005-02-24 23:46) [6]

Генри ©

Или можешь использовать класс TFileStream.


← →
Генри ©   (2005-02-24 23:51) [7]

А какие есть ещё методы решения этой задачи?


← →
Palladin ©   (2005-02-24 23:52) [8]

А какие еще есть алгоритмы решения этой задачи?


← →
Eraser ©   (2005-02-24 23:52) [9]

Eraser ©

Чем предыдущие два не устраивают? Какие к "методам" ты предъявляешь требования?


← →
Генри ©   (2005-02-24 23:56) [10]

2 Palladin
Наверное алгоритмов решения больше нет (ИМХО).
2 Eraser
Главное простота в реализации.

Если не затруднит, можно маленький пример решения подобной задачи?


← →
Eraser ©   (2005-02-25 00:00) [11]

Генри ©

А справку или вообще хоть что-нибудь читать пробовал.
BlockRead подробно описан даже в книжках по Turbo Pascal для школьников.


← →
Генри ©   (2005-02-25 00:04) [12]

2 Eraser
изучать Delphi только начал, книжками ещё не обзавёлся -(


← →
Palladin ©   (2005-02-25 00:06) [13]


> [10] Генри ©   (24.02.05 23:56)

Есть, но они гораздо более сложны в реализации нежели чем предложенный.

Пример так пример. Надеюсь он чему нибудь да научит.

Procedure SplitFile(Const S:String;p_nPartSize:Integer);
Var
F,R:File;
Buf:Pointer;
i,nReaded:Integer;
Begin
i:=1;
GetMem(Buf,p_nPartSize);
AssignFile(F,S); Reset(F,1);
Whilte True Do
 Begin
  BlockRead(F,Buf^,p_nPartSize,nReaded);
  If nReaded=0 Then Break;
  AssignFile(R,S+".Part."+IntToStr(i)); Rewrite(R);
  BlockWrite(R,Buf^,nReaded);
  CloseFile(R);
 End;
CloseFile(F);
End;


← →
Генри ©   (2005-02-25 00:10) [14]

Всем большое спасибо за помощь!


← →
Palladin ©   (2005-02-25 00:16) [15]

:)
Называеться найди ошибку...


← →
Генри ©   (2005-02-25 00:35) [16]

Сейчас состряпал:

var
f:TextFile;
Ch:char;
Buf:Array [1..10] of Char;
begin
if OpenDialog1.Execute then
AssignFile(f,OpenDialog1.FileName);
Reset(f);
BlockRead(f,Buf,10);
CloseFile(f);
end;
end.
Почему  в этой строке выдаёт ошибку BlockRead(f,Buf,10) ???


← →
iskatel ©   (2005-02-25 00:42) [17]

^ поставь...


← →
Генри ©   (2005-02-25 00:45) [18]

2 iskatel
всё равно не прёт..-(


← →
Palladin ©   (2005-02-25 00:46) [19]


> [17] iskatel ©   (25.02.05 00:42)

Чушь советовать не стоит...


> [16] Генри ©   (25.02.05 00:35)

TextFile не есть File... Совсем не есть...
Читай справку о различиях...


← →
Генри ©   (2005-02-25 00:48) [20]

Угу, сообразил.


← →
Palladin ©   (2005-02-25 01:02) [21]

http://www.delphikingdom.com/lyceum/seminar.asp?partID=4
на всякий случай...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.074 c
1-1108919240
Sicilla
2005-02-20 20:07
2005.03.13
XP Manifest


4-1107204385
rks
2005-01-31 23:46
2005.03.13
Программирование USB


1-1109362370
Qwatrbe4
2005-02-25 23:12
2005.03.13
Удаленное администратирование


14-1108665627
Alexander Panov
2005-02-17 21:40
2005.03.13
Погрустим?


3-1108030742
BPK
2005-02-10 13:19
2005.03.13
TDataSet.Locate не работает по сортированному DataSet




   Наверх