Читаем Извлекаем архив из fb2 полностью

Извлекаем архив из fb2

Книга предназначена студенту, писавшему программы только в качестве курсовых, "сдавшему" Delphi и несмотря на это, желающему стать программистом. Это, не сборник готовых рецептов, автор хочет поставить читателя в условия максимально приближенные к рабочим. Мы вместе напишем программу, пройдя через ошибки, и сомнения к окончательной победе...

Юрий Карпов

Программирование / Книги по IT18+
<p>Извлекаем архив из fb2</p>

|t_| Ты, готов?

|go| Всегда, готов!

|t_| Сейчас, я хочу занять твое время, чисто технологической работой, но я надеюсь, что в дальнейшем она нам сильно облегчит жизнь.

|go| О чем речь. Зачем так много слов?

|t_| Да, боюсь, что слов будет больше чем дела.

Не люблю я читать занудные, но необходимые для правильного понимания, объяснения типа:

"выберите пункт меню File (Файл) затем Open (Открыть)..."

Мне хочется в нашем общении быть свободным от мелочной опеки, а говорить только о необходимом.

А для этого у тебя под рукой должен быть исходный код программы о которой мы будем говорить. После перебора разных вариантов, сейчас я остановился на таком. Исходный код программы в виде архива будет хранится в самой книге FB2.

|go| Не понял, как это?

|t_| Формат fb2 позволяет в контейнере binary хранить рисунки. А почему бы нам не хранить там архивы.

|go| А как к этому отнесется Грибов.

|t_| Мне хочется думать, что с пониманием.

Итак, сейчас, я опишу порядок действий по извлечению исходника программы из этой книги. В дальнейшем ты откомпилируешь программку и из наших дальнейших книг будешь извлекать архивы.

Сегодня я не хочу распылятся, и описывать как работает эта программа, нам нужна она пока сама по себе. Начинаю.

|go| Весь во внимании.

|t_|

1. Сделай копию этой книги.

2. Измени расширение .fb2 на .txt, или нет, сразу назови его zzz.txt - это будут данные для нашей одноразовой программки.

3. Открой файл блокнотом.

4. Найди текст

5. Удали эту строку и все что есть до ее.

6. Найди текст

7. Удали эту строку и все после ее.

В файле должно остаться:

UEsDBAoAAAAAAHQXhzcAAAAAAAAAAAAAAAANAAAAemlwX2Zyb21fZmIyL1BLAwQKAAAAAADmHIc3

...

...

AAAAAAkACQBvAgAAJA8AAAAA

всего 80 строк такой кузязябры.

8. Сохрани файл.

Данные готовы.

Теперь программка.

Запускай Delphi.

Делай новый проект

Поставь на форму одну кнопочку.

В обработчик нажатия кнопочки напиши

// начало кода

procedure TForm1.Button1Click(Sender: TObject);

var

Path : string;

MS, MS1 : TMemoryStream;

begin

MS := TMemoryStream.Create;

MS1 := TMemoryStream.Create;

Path := ExtractFileDir(ParamStr(0)) + '\';

MS.LoadFromFile(Path+'zzz.txt');

MS.Position := 0;

DecodeStream(MS, MS1);

MS1.SaveToFile(Path+'zip_from_fb2.zip');

MS.Free; MS1.Free;

end;

// конец кода

Еще, в uses добавь EncdDecd.

Сохрани проект и unit1 в какую либо папку (я имею в виду, создай папку).

Туда же брось, подготовленный файл zzz.txt

Запусти Delphi на выполнение.

Нажми на кнопку.

Все.

Полученный архив распакуй в новую папку.

А все сделанное можешь спокойно удалить.

|go| А зачем удалять, может и дальше ею пользоваться?

|t_| Нет, программка одноразова, тут целая история, об эмоциональности программирования, но об это потом...

Запускай проект полученный из архива

И проверь его на этой книге

Ну, как, получилось?

|go| Постой, постой!

А, как подготавливать архивы для вставки в книгу?

|t_| А, тебе зачем?

|go| Ну, вот, пожадничал.

|t_| Да нет, мне не жалко... хотя постой, ты совершенно прав, тебе пригодится возможность кодировать рисунки.

|go| А еще и извлекать картинки из книги...

|t_| Ну ладно, уговорил. Сейчас переделаю прогу. И напишу еще одну, и их исходники засуну в эту книгу. Чтобы тебе не запутаться, программа для декодирования будет находится в конце книги.

|go| Хорошо, я потом посмотрю исходники, и если, что-то пойму...

|t_| Ладно, пиши. Успехов!

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT