Зберігання двійковій інформації в xml файлі

Параграф 1. XML файл і можливість зберігання двійкових даних
(Малюнків, музичних файлів, документів)

Зі сказаного можна зробити висновок - зберігати двійкові дані можна тільки якщо вони будуть представлені як текстові рядки. Однак, пряме перетворення всього масиву байт (двійкових даних) в текстовий рядок не буде вирішенням в силу того, що можлива присутність в двійковому коді значень, які збігаються зі службовими символами кодування рядків і значень рівних завершення рядка. Як результат - ми зможемо помістити в контент тега тільки частина рядка (до першого збігу двійкового символу зі значенням закінчення рядка) при можливому відображенні поміщеного коду на декількох рядках XML файлу для одного вмісту контента. Отже, рядок повинна формуватися і присвоюватися значення контенту як єдине ціле. Способи виконати це можуть бути різні, від посимвольного перетворення байт в значення char і послідовного додавання результату в вміст контенту (повільний спосіб), до використання StringBuilder (швидкий спосіб). Нижче розглянуто спосіб використання саме класу будівника рядків.

І останнє зауваження - найбільш часто зберігання двійкових даних пов'язано з завданням зберігання малюнків (хоча наведений нижче код дорівнюватиме добре працювати і при використанні його для зберігання у вигляді двійкових даних Web сторінок, Word або Excel документів і т.д. і т.п. .). Вміст файлу малюнка - масив шістнадцятирічних символів. Як наслідок, і код уявлення малюнка в контенті спирається на шістнадцяткове відображення рядків.

Параграф 2. Зберігаємо малюнок в XML файл

Звернемо увагу на тег NewDataSet. Чому він введений буде ясно тільки з матеріалу наступного розділу, поки це приймемо як належне. Призначення інших тегів ясно з їх назв.

Наше завдання - помістити в тег PIC - малюнок. Для цього створимо обробник натискання кнопки 1, в коді якого і виконаємо збереження малюнка в XML файл:

Файл XML буде виглядати наступним чином:

Зазначене кольором показує і недолік зберігання даних в XML файлах - довжина рядка, хоча це не означає, що при зберіганні в таблицях баз даних ми виграємо в обсязі або швидкості обробки (скоріше навпаки програємо за рахунок мережевого трафіку).

Звернемо увагу, що, як зазначено вище, точно таким чином можна зберегти в файл будь-які дані (Web сторінки, Word або Excel документи і т.д. і т.п.). Перевірити це не складно, достатньо завантажити замість картинки необхідний документ.

Параграф 3. Витягуємо малюнок (двійкові дані) з XML файлу

Створимо оброблювач натискання кнопки 2, в коді якого і виконаємо витяг малюнка з XML файлу:

Звернемо увагу, що, як зазначено вище, точно таким чином можна зберігати і відновлювати будь-які дані (Web сторінки, Word або Excel документи і т.д. і т.п.). Перевірити це не складно, достатньо спробувати завантажити і відновити замість картинки необхідний документ.

Еcли Ви прийшли з пошукових машин - відвідайте мою головну сторінку

Сайт управляється системою uCoz