Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Статьи » Розробка програмного продукту забезпечує експорт специфікації з додатка PartList

Реферат Розробка програмного продукту забезпечує експорт специфікації з додатка PartList





що, досягнутий кінець xml-документа, обчислюємо кількість, порожніх рядків, які потребують додати, щоб останній лист специфікації pdf, був заповнений повністю. В іншому випадку переходимо до етапу 1.

Перейдемо до програмної реалізації представленого алгоритму. Читання даних з xml-файла проводиться за допомогою функції ReadFile (). Але, для початку, необхідно відкрити файл за допомогою функції CreateFile () [10]. Розглянемо наступний фрагмент коду.

HANDLE hFile=CreateFile (sDir, GENERIC_READ, 0,0, OPEN_EXISTING, 0,0);

DWORD fileSize=GetFileSize (hFile, 0);

char * fileBuffer=new char [fileSize];

DWORD bytesRead;

ReadFile (hFile, fileBuffer, fileSize, amp; bytesRead, 0);

Перший параметр передається в функцію CreateFile () - це строкова змінна містить шлях до відкривається xml-файлу. Прапор GENERIC_READ означає, що файл відкривається тільки для читання. Прапор OPEN_EXISTING сведетельствует від тому буде відкритий існуючий файл. Розлядаючих метод повертає ідентифікатор відкритого ресурсу (файлу). Функція GetFileSize () повертає розмір відкритого файлу. За допомогою функції ReadFile () дані всього файлу зчитуються в оперативну пам'ять (за адресою міститься в fileBuffer). Третій параметр розглянутого методу - кількість байт для читання. Після виконання функції, змінна bytesRead буде містити число реально прочитаних байт.

Для програмної перевірки, чи не потрапить розділ на другий рядок сторінки специфікації (етап 2, розглянутого алгоритму) був розроблений наступний фрагмент коду.

for (DWORD k=0; k lt; kline_before + 1; k ++)

{(((* line) + k == 2) || ((* line) + k == (K + 2)) || ((((* line) + k -(K + 2))% T == 0) amp; amp; (((* line) + k) gt; (K + 2))))

{[section] [2]=k;=true ;;

}

}

Тут змінна kline_before містить значення колічесіва порожніх lt; line/ gt; додаються зверху lt; section/ gt ;. За адресою хранящімуся в line, знаходиться значення лічильника рядків. Мінлива K - це кількість рядків на першій сторінці специфікації. Т - кількість рядків на 2й і наступних сторінках специфікації. Мінлива section містить кількість переглянутих розділів. І відповідно, номер поточного розділу. Мінлива масиву positionSectionStart [section] [2] містить кількість рядків доданих перед поточним розділом. Мінлива масиву positionSectionStart [section] [0] містить позицію символу lt; (поточного тега lt; section/ gt; або lt; line/ gt;) в xml-файлі. Значення елемента масиву positionSectionStart [section] [1] інформує про те, що positionSectionStart [section] [0] містить позицію об'єкта lt; section gt; або lt; line/ gt;.

Для програмної перевірки розриву між розділом і першою не порожній рядком, після нього, у вигляді перенесення останньої на інший аркуш специфікації (етап 3, розглянутого алгоритму), був розроблений наступний фрагмент коду.

for (DWORD k=0; k lt; kline_after + 2; k ++)

{

//Перевіряємо чи не потрапила секція в кінець листа специфікації ((((* line) + k) == K) || (((((* line) + kK)% T)==0) amp; amp; (((* line) + k) gt; K)))

{

(* section10_29) ++; _ 29 [* section10_29] [0]=section;

//Повинні бути додані як мінімум 2 строкі_29 [* section10_29] [1]=k + 2;

* line +=k + 2 ;;

}

}

Тут змінна kline_after здобуде значення колічесіва порожніх lt; line/ gt; додаються знизу lt; section/ gt ;. За адресою хранящімуся в section10_29 знаходиться значення лічильника розділів потрапили в початок або кінець листа специфікації. Елемент масиву positionSection10_29 [* section10_29] [0] містить порядковий номер розділу в xml-документі. Мінлива positionSection10_29 [* section10_29] [2] містить число додатково додаються рядків перед розділом, для перенесення його на новий аркуш специфікації.

Програмна реалізація перевірки попадання розділу в кінець листа специфікації представлена ??нижче.

if ((* line == 1) || (* line == (K + 1)) || (((* line - (K + 1))% T == 0) amp; amp; ((* line gt; (K + 1))))

{

(* section10_29) ++; _ 29 [* section10_29] [0]=section; _29 [* section10_29] [1]=1;

* line ++ ;;

}

Перевірка на етапах 5 і 6 реалізується аналогічно.

Код функцій, що реалізують алгоритм перетворення xml-файлу в новий xml-документ, представлений у додатку B.



Назад | сторінка 17 з 28 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Пароплавна компанія White Star Line
  • Реферат на тему: Пароплавна компанія White Star Line
  • Реферат на тему: Створення бази даних геореференсірованних фотографічних зображень грунтів в ...
  • Реферат на тему: Технологія цифрової абонентської лінії (Digital Subscribe Line, DSL)
  • Реферат на тему: Equipment of technological acceptance line, storage and fuel delivery