Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 01:33 01.07.24 
Компютри и Интернет
   >> Visual Basic
Всички теми Следваща тема *Кратък преглед

Тема Много файлове <--> един файл  
Автор microsoft (член)
Публикувано19.06.05 15:59



Привет,

значи трябва ми следното:
Имам най-различни файлове - exe/dll/jpg/doc/gif/txt/xls/ocx ... - може да са всякакви.
Искам да събера механично няколко от тях в един общ файл. После от тоя общ файл да мога да извадя всеки от файловете съдържащи се в него, и да го запазя като отделен, напълно функциониращ файл, работещ точно като оригинала.

Т.е имам примерно test.exe, pic.jpg, blah.txt - от всичките тях правя един файл, примерно files.all.
После от files.all да мога да извлека и запазя отново като отделен файл всичките test.exe, pic.jpg, blah.txt заедно или само който (които) и да е от тях.

Трябва ми точно това, а не примерно да правя зип от всичките и после да вадя файлове от зип-а.
Може да има отделен тхт файл в който се пази информация къде започва и свършва всеки от файловете във files.all

От известно време се мъча без грам резултат(положителен де), дайте акъл.

Благодаря!



Тема Re: Много файлове <--> един файлнови [re: microsoft]  
Автор ЩиpлицМодератор (разузнавач)
Публикувано20.06.05 02:00



Странно желание, след като има толкова много работещи от команден ред архиватори. Но... wish is law!

Ето един прост метод на четене и запис на произволно място във файл, та било то и Files.all. ;о)

Private Sub subRead()


Dim intStart As Long
Dim intLenght As Long
Dim strBytes As String

intStart = 1
intLenght = 32493

Open "files.all" For Binary As #1
strBytes = Space(intLenght)
Get #1, intStart, strBytes
Close #1

If Dir("files.exe") <> "" Then Kill "files.exe"
Open "files.exe" For Binary As #1
Put #1, , strBytes
Close #1

intStart = 32494
intLenght = 263512

Open "files.all" For Binary As #1
strBytes = Space(intLenght)
Get #1, intStart, strBytes
Close #1

If Dir("files.jpg") <> "" Then Kill "files.exe"
Open "files.jpg" For Binary As #1
Put #1, , strBytes
Close #1

End Sub

Private Sub subWrite()

Dim intStart As Long
Dim strBytes As String

Open "files.jpg" For Binary As #1
strBytes = Space(LOF(1))
Get #1, , strBytes
Close #1

intStart = 32494

Open "files.all" For Binary As #1
Put #1, intStart, strBytes
Close #1

End Sub


... проследи кога и как се променят стойностите на intStart и intLenght и strBytes преди четене и запис. Опитай да разбереш защо... а пък самите числа къде ще ги държиш - трябва да помислиш по въпроса. Може в последователен текстов файл, може в INI, може в регистъра даже... може и в самия files.all да бъдат, но трябва да си заделяш допълнително място в него. Важно е да се знае, че когато пишеш във файла files.all на място започващо от 314432 байт, и записваш вътре да кажем 293812 байта - няма значение колко е дълъг файла files.all, ако е по-дълъг - ще се променят само тези 293812 байта, а ако е по-малък - тогава ще се промени дължината му с толкова байтове, колкото са нужни за да се събере всичко, дето искаш да запишеш. Но старите байтове на мястото започващо от 314432-рия байт - се губят. Затова, ако там е имало по-малък файл, и след него други файлове, ... ако запишеш новия по-голям файл - тогава ще промениш съдържанието и на следващия файл, който няма никаква вина за цялата работа... (горкият).

На мнение съм, че не трябва да си усложняваш живота с тези глупости. Просто използвай един ARJ от конзола, и го управлявай с Shell.


Щирлиц

Тема Re: Много файлове <--> един файлнови [re: Щиpлиц]  
Автор microsoft (член)
Публикувано20.06.05 18:46



thnx!
сега почвам да го разучавам :)



Тема Re: Много файлове <--> един файлнови [re: microsoft]  
АвторVBProgrammer (Нерегистриран)
Публикувано20.06.05 18:56



По едно време цивилизования метод за това беше: LoadResource




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.