Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: 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 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.037 c
3-1107966523
Dyusha
2005-02-09 19:28
2005.03.13
Сортировка в таблице при помощи ADOQuery


14-1107430238
Ломброзо
2005-02-03 14:30
2005.03.13
А что там Жириновский такого про Казахстан ляпнул?...


4-1106830244
Rams
2005-01-27 15:50
2005.03.13
Hook на открытие файла


1-1109336366
denis24
2005-02-25 15:59
2005.03.13
stringlist и создание модальной формы


3-1108030793
Aleksandr.
2005-02-10 13:19
2005.03.13
Что будет быстрее?