Чтение онлайн

на главную - закладки

Жанры

Технологии программирования

Костерин В В

Шрифт:

FILESEXTENSION = 'MSS'; {Стандартный тип файла}

Var

FeleName: String; {Имя файла таблицы}

{Видимая ширина колонок таблицы}

ColWidth: array [1..MAXCOLS] of Byte;

{Информация о заполнении таблицы}

LastCol, {Последняя заполненная
колонка таблицы}

LastRow: Word; {Последняя заполненная
строка таблицы}

Локальные описания:

Var

EndOfFile; Char; {Признак
конца текстового файла}

Col; Word; {Номер колонки клетки}

Row; Word; {Номер столбца клетки}

Count; Word; {Число заполненных клеток таблицы}

Size; Word; {Длина информации клетки}

CPtr; TCellPtr; {Указатель на клетку}

F; File; {Файловая переменная}

Blocks; Word; {Прочитано или записано байт}

Файл хранения электронной таблицы является файлом постоянного хранения, бинарным произвольной длины; имеет имя, определенное пользователем, но с расширением имени "MSS".

Организация заголовочной части файла электронной таблицы представлена в табл. 4.1.

Таблица 4.1

Заголовочная часть файла электронной таблицы

Оперативная информация Длина оперативной информации, байт Комментарий
FILEIDENT Length (FILEIDENT) Константа строки идентификации
EndofFile SizeOf (EndOfFile) Признак конца текстового файла
LastCol SizeOf (LastCol) Последняя заполненная колонка таблицы
LastRow Sizeof (LastRow) Последняя заполненная строка таблицы
Count Sizeof (Count) Число заполненных клеток таблицы на участке таблицы (1, 1, LastCol, LastRow)
ColWidth Sizeof (ColWidth[1] * MAXCOLS) Вектор ширин колонок таблицы от 1 до MAXCOLS

Запись в файл EndOfFile со значением 2610 = 1A16 (Ctrl + Z) обеспечивает вывод на экран только строки идентификации при просмотре файла с помощью большинства программ просмотра текстовых файлов.

При чтении файла электронной таблицы считанная информация первой текстовой строки файла проверяется на совпадение с FILEIDENT.

Информация о заполнении таблицы характеризует участок таблицы (1, 1, LastCol, LastRow), в пределах которого пользователь внес изменения информации таблицы.

Значение Count при записи рассчитывается с использованием двух вложенных циклов, задающих номера всех клеток на участке таблицы (1, 1, LastCol, LastRow). В циклах значение Count увеличивается на единицу, если значение указателя на информацию клетки ≠ Nil.

В таблице 4.2 приведена организация информации очередной непустой клетки файла электронной таблицы.

Таблица 4.2

Информация очередной непустой клетки файла электронной таблицы

Оперативная информация Длина оперативной информации, байт Комментарий
Col SizeOf (Col) Номер
колонки клетки
Row SizeOf (Row) Номер строки клетки
Cells [Col, Row].CellFormat Sizeof (Word) Формат клетки
Size Sizeof (Size) Длина информации клетки
Фактическая информация клетки Size Информация клетки

Значение Col, Row определяют сохраняемые или сохраненные в файле координаты каждой непустой клетки. Фрагмент кода программы сохранения информации непустой клетки таблицы приведен ниже:

if Cells [Col, Row].CellPtr <> nil then

begin

CPtr:= Cells [Col, Row].CellPtr;

case CPtr^.Attrib of

TXT: Size:= Length (CPtr^.TextStr) + 3;

VALUE: Size:= Sizeof (Real) + 2;

FORMULA: Size: = Length (CPtr^.Formula) + Sizeof (Real) + 3;

end; {case}

BlockWrite (F, Col, SizeOf (Col), Blocks);

BlockWrite (F, Row, SizeOf (Row), Blocks);

BlockWrite (F, Cells [Col, Row].CellFormat,
Sizeof (Word), Blocks);

BlockWrite (F, Size, SizeOf (Size), Blocks);

BlockWrite (F, CPtr^, Size, Blocks);

end;

ВЫВОДЫ

• Под структурой данных программы понимают множество элементов данных, связей между ними, а также характер их организованности. Структуры данных и алгоритмы служат основой построения программ.

• Структура данных может быть физической и логической. В общем случае между логической и соответствующей ей физической структурами есть различие, вследствие которого существуют правила отображения логической структуры на физическую структуру.

• Над всеми структурами данных могут выполняться пять операций: создание, уничтожение, выбор (доступ), обновление, копирование.

• Важный признак структуры данных — характер упорядоченности ее элементов. Существует бесконечное множество способов упорядочения информации, среди которых имеются и общие, наиболее часто встречаемые и известные большинству программистов.

• Физическое представление может не соответствовать логическому представлению и, кроме того, существенно различаться в разных программных системах.

• Многие из рассмотренных структур данных возможно реализовать с использованием статических структур данных, динамических переменных и динамических структур данных.

• Файл — упорядоченный набор информации на внешнем носителе (наиболее часто на дисковом носителе).

Контрольные вопросы

1. Что такое структура данных программы?

2. Что понимают под организованностью данных?

3. В какой форме могут представляться данные?

4. Что отражает физическая структура данных?

5. В чем различие между физической и логической структурами данных?

6. Какие операции могут выполняться под структурами данных?

7. Приведите примеры широко известных структур данных.

8. Чем характеризуется статический массив?

9. Что такое строка? Какие бывают виды строк?

10. Назовите простейший метод поиска элемента.

Поделиться:
Популярные книги

Новобрачная

Гарвуд Джулия
1. Невеста
Любовные романы:
исторические любовные романы
9.09
рейтинг книги
Новобрачная

Аномальный наследник. Том 1 и Том 2

Тарс Элиан
1. Аномальный наследник
Фантастика:
боевая фантастика
альтернативная история
8.50
рейтинг книги
Аномальный наследник. Том 1 и Том 2

И вспыхнет пламя

Коллинз Сьюзен
2. Голодные игры
Фантастика:
социально-философская фантастика
боевая фантастика
9.44
рейтинг книги
И вспыхнет пламя

Барону наплевать на правила

Ренгач Евгений
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Барону наплевать на правила

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Возвышение Меркурия. Книга 5

Кронос Александр
5. Меркурий
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 5

Ученичество. Книга 1

Понарошку Евгений
1. Государственный маг
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ученичество. Книга 1

Купец VI ранга

Вяч Павел
6. Купец
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Купец VI ранга

Корсар

Русич Антон
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
6.29
рейтинг книги
Корсар

Неверный

Тоцка Тала
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Неверный

Девятый

Каменистый Артем
1. Девятый
Фантастика:
боевая фантастика
попаданцы
9.15
рейтинг книги
Девятый

Убивать чтобы жить 7

Бор Жорж
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 7

Полковник Империи

Ланцов Михаил Алексеевич
3. Безумный Макс
Фантастика:
альтернативная история
6.58
рейтинг книги
Полковник Империи

Аргумент барона Бронина 2

Ковальчук Олег Валентинович
2. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 2