Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
ВнизКак разбить файл на части, а потом его собрать? Найти похожие ветки
← →
Генри © (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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.04 c