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

на главную

Жанры

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

Костерин В В

Шрифт:

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. Назовите простейший метод поиска элемента.

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

Дракон с подарком

Суббота Светлана
3. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
6.62
рейтинг книги
Дракон с подарком

Государь

Кулаков Алексей Иванович
3. Рюрикова кровь
Фантастика:
мистика
альтернативная история
историческое фэнтези
6.25
рейтинг книги
Государь

Новая мама в семье драконов

Смертная Елена
2. В доме драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Новая мама в семье драконов

Прорвемся, опера!

Киров Никита
1. Опер
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прорвемся, опера!

Офицер-разведки

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

Провинциал. Книга 3

Лопарев Игорь Викторович
3. Провинциал
Фантастика:
космическая фантастика
рпг
аниме
5.00
рейтинг книги
Провинциал. Книга 3

Мимик нового Мира 5

Северный Лис
4. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 5

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

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

Мама для дракончика или Жена к вылуплению

Максонова Мария
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Мама для дракончика или Жена к вылуплению

Кодекс Охотника. Книга XVI

Винокуров Юрий
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVI

Ученик

Первухин Андрей Евгеньевич
1. Ученик
Фантастика:
фэнтези
6.20
рейтинг книги
Ученик

Сопротивляйся мне

Вечная Ольга
3. Порочная власть
Любовные романы:
современные любовные романы
эро литература
6.00
рейтинг книги
Сопротивляйся мне

Сам себе властелин 4

Горбов Александр Михайлович
4. Сам себе властелин
Фантастика:
фэнтези
юмористическая фантастика
попаданцы
6.09
рейтинг книги
Сам себе властелин 4

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

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