Главная страница
    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.039 c
1-1109361350
kami
2005-02-25 22:55
2005.03.13
OnClose или OnDestroy?


14-1108805918
Иксик2
2005-02-19 12:38
2005.03.13
А чего так тихо?


1-1109574679
mmms
2005-02-28 10:11
2005.03.13
Как бы зациклить "Tab" на одной панели, не переходить на другие


3-1108239885
kblc
2005-02-12 23:24
2005.03.13
Файлы в Access


1-1109277013
XMAN
2005-02-24 23:30
2005.03.13
On(ScreenSaver)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский