Дак тож WinRar, понятное дело что там и удобное структурирование и сжатие и прочие привилегии. В моей схеме как раз полностью исключается использование стороннего по тут как бы с чистого листа и под другие задачи и без сжатия. В общем по началу собирал просто свой тип файла к программе, потом надоело строгое структурирование решил двигаться в сторону динамических контейнеров, вот дошёл до такого варианта, есть ещё с десяток похожих (правда вот MemoryStream не отпускает нигде), везде одна и та же проблема (файлы большого объёма), прочие мелочи не учитываются (они поправимы). А что на счёт дальнейшего применения всех этих конструкций, то тут можно по всякому, загрузил все графические аудио и прочие файлы любой своей программы в один файл и читай не отходя от библиотеки. Ну или допустим в Hiasm в DLL форму запихнуть нельзя а кучесхемостью программу забивать не хочется, собрал под программу подпрограммы, скомпилировал их в exe с нужными именами, хоть 1000 штук всё записал в один файл и вызывай по надобности любое окно, передавай параметры и радуйся. Ну эт я о глобальном. сейчас же обида на FileStream, MemoryStream и всё внимание теперь к SharedStream...
Этот топик читают: Гость
Ответов: 101
Рейтинг: 2
|
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
MasterXP писал(а): Разбежались мозги в разные стороныMasterXP писал(а): собрал под программу подпрограммыMasterXP писал(а): скомпилировал их в exe с нужными именами, хоть 1000 штукMasterXP писал(а): всё записал в один файлИ почему эти суки, создающие Виндовсы, Линуксы и др., так не делают? Подозреваю, что у них мозги разных людей сбежались для решения общей идеи. Леонид писал(а): Всё получилось за 42 мин, правда архив больше исходников -- 7 ГбА вытащить из этого файла, например, картинку №1234 за 1 сек? Три вещи способствуют крепкому сну: 1. Чистая совесть. 2. Мягкая подушка. 3. Отсутствие интернета. |
|||
карма: 25 |
|
Ответов: 4630
Рейтинг: 749
|
|||
MasterXP писал(а): Уже даже форум облазил в поисках какого нибудь модернизированного FileStreamTurboEXПлохо лазил StreamCopy FileStream DataToFile Правда, с файлами больше 4 Гб все равно не будет работать. |
|||
карма: 26 |
|
Ответов: 101
Рейтинг: 2
|
|||
Tad писал(а): А если какую-то подпрограмму нужно изменить или заменить? Что, опять "1000 штук" переписывать "в один файл"?Netspirit писал(а): Плохо лазил StreamCopy FileStream DataToFile Netspirit писал(а): Правда, с файлами больше 4 Гб все равно не будет работать.Tad писал(а): И что, все разбежались? Ни грамма не осталось?------------ Дoбавленo в 01.19: Вообще столкнувшись с этой проблемой задумался о компоненте разбить файл, пошёл в интернет поискать чего нить, найти то нашёл но прочесть код не смог (языков я программирования не знаю) но, < это же поправимо, особенно если сам код уже кто то написал осталось перевести только. Сказать что в коне совсем ничего не вижу это неправильно, вижу то что можно исключить так как у нас своих кнопок и диалогов достаточно допустим это > procedure TForm1.Button1Click(Sender: TObject); дальше в коде есть ещё такое что тоже можно выкинуть > [color=green] begin if OpenDialog1.InitialDir = '' then begin OpenDialog1.InitialDir := ExtractFilePath(Application.ExeName); end; [/color] Но выкидывать часть мусора с кода это понятно может каждый и явное увидеть. Проблема дальше скрывается это старая тема как (откуда берётся интерфейс "GUI"). Весь процесс планировал как вставкой кода и адаптацией его (заинлайнить), и столкнулся со строчкой AssignFile(F2, OpenDialog1.FileName + '.part' + IntToStr(i)); чтож в коде постоянно этот диалог открывается то, откуда тут можно удалить что нить где начало где конец, дальше и то больше читается и понимается чем в той маленькой строчке [color=green] Rewrite(F2, 1); BlockRead(F1, Pointer(Buff)^, SizePart); BlockWrite(F2, Pointer(Buff)^, SizePart); if (i = N) and (SizePartAdd > 0) then begin [/color] В общем вот как то так покатилось всё к SharedStream а это плохо тяга к лёгкому пути это синдром ЗПР а для таких спец отделения строятся Нужно как то коду поучится к кубикам привыкаешь быстро. |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
1. Код, который ты нашел у Mawrat-а - это не твой код.
Это код для разбиения большого файла на 10 мелких 2. Твой код - обыкновенная книга С ОГЛАВЛЕНИЕМ |
|||
карма: 25 |
|
Ответов: 4630
Рейтинг: 749
|
|||
MasterXP писал(а): задумался о компоненте разбить файлЕсли опять же до 4-х Гб, то модифицированный DataToFile в режиме dtStringLen для чтения и записи (или ещё проще - StreamCopy) плюс цикл For. |
|||
карма: 26 |
|
Ответов: 101
Рейтинг: 2
|
|||
Tad писал(а): это не твой код |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
MasterXP писал(а): А разве я утверждал что он мой?Tad писал(а): 1. Код, который ты нашел у Mawrat-а |
|||
карма: 25 |
|
Ответов: 101
Рейтинг: 2
|
|||
Tad писал(а): Твой код - обыкновенная книга С ОГЛАВЛЕНИЕМ |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Netspirit писал(а): модифицированный DataToFile в режиме dtStringLenЭто кто такой |
|||
карма: 9 |
|