Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.041 c
1-1109627083
Мирон
2005-03-01 00:44
2005.03.13
Не хочет вызываться нужный конструктор класса


8-1101273083
elected
2004-11-24 08:11
2005.03.13
DelphiX Бегушая строка


1-1109546756
KyRo
2005-02-28 02:25
2005.03.13
Директория программы


1-1109626493
dmk
2005-03-01 00:34
2005.03.13
Как определить длину текста в Clipboard?


3-1108428160
Витёк
2005-02-15 03:42
2005.03.13
Добавить поле в DBF, используя ADO





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский