Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв БД 2013-06-02.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
26.54 Mб
Скачать

2.4.21. Манипулирование файлам и таблицами

Просмотр имен файлов на диске выполняется по команде

Dir [<Диск>] [<маска>] [То Printer | To File <файл>]

Команда выводит на экран/принтер/файл имена файлов из указанного диска и директории. По умолчанию команда предъявляет имена не всех файлов, а только файлов DBF.

Команда Erase <файл> удаляет неактивный в данный момент файл любого типа.

Команда Rename <старое имя файла> То <новое имя файла> осу­ществляет переименование любого неактивного файла. Расширение имени файла обязательно.

Команда Copy File <имя файла-оригинала> То <имя файла-копии> выполняет копирование любого неактивного файла в новый файл с тем же или другим именем. Расширение файлов указывается обязательно.

Команда Copy Tо <имя нового файла> <границы>[Fields <поля>] [For <условие1>] [While <условие2>] [Type <тип файла>] осуществляет копирование открытого файла DBF в новый файл.

В новый файл могут копироваться как все поля таблицы, так и только перечисленные в списке Fields. Если указаны условия и/или границы, то копироваться будут только удовлетворяющие им записи. По умолчанию область действия команды - весь файл (ALL). При отсутствии фразы Type новый файл будет также файлом таблицы с расширением DBF. Указание типа позволит сформировать новые файлы иных типов, пригодные как для просмотра и редактирования в текстовых редакторах, так для обработки в других средах (описание типов можно получить командой Help Copy File).

Следующая команда добавляет в активную таблицу данные из некоторой другой таблицы или текстового файла:

Append From <имя файла-источника> [Fields <поля>]

[For <условие>] [While <условие>] [Type <тип файла>]

Если параметр Type опущен, копируется файл DBF. Эта команда является близкой по смыслу к предыдущей, но она не создает новый файл, а лишь дописывает записи в конец существующего файла. Из файла-источника добавляются только поля, одноименные с полями дополняемого файла. Параметр Fields позволяет копировать не все такие поля, а лишь перечисленные. Эта команда в формате является удобным средством перенесения данных из ASCII-файла в DBF-файл. Такие данные вообще могут готовиться и вне СУБД, в любом текстовом ASCII- редакторе.

Во многих случаях желательно иметь возможность командным образом создавать новый файл таблицы со структурой, аналогичной или близкой некоторому другому DBF-файлу. Эта возможность предоставляется командой Copy Structure То <имя нового файла> [Fields <поля>]. Команда копирует структуру активной таблицы (или ее часть) в пустой файл.

2.4.22. Математическая обработка таблиц

В FoxPro имеются средства для получения количеств, сумм, средних и некоторых других величин. Рассмотрим эти команды.

Count [<границы>] [While <условие1>] [For <условие2>]

[То <переменная>]

Этой командой подсчитывается число записей в заданных грани­цах, удовлетворяющих условиям, которое заносится в <переменную>.

Sum/Average [<границы>] [While <условие>] [For <условие>]

<список выражений> [Tо <переменные> | Tо Array <массив>]

По команде Sum/Average формируется сумма/среднее перечис­лен­ных числовых полей и выражений в указанные <переменные> или <массив>.

Calculate <границы> [While <условие>] [For <условие>]

<список выражений> [Tо <переменные> | Tо array <массив>]

Команда Calculate позволяет вести математические расчеты в таблице. Список выражений может содержать любую комбинацию следующих внутренних для данной команды функций: Cnt( ) (число записей в таблице), Avg/Max/Min/Sum(<Выр>) (среднее/максимальное/ми­ни­маль­ное/сум­ма). Эти команды по умолчанию имеют в качестве области действия всю таблицу (ALL).

Total On <выражения> [<границы>] [While <условие>] [For <условие>]

[Fields <имена полей>] [To <файл>]

Командой создается новый файл, куда последовательно зано­сятся суммы числовых полей для тех записей, которые имеют одинаковое значение <выражения>. Все такие записи исходного файла образуют одну запись в новом файле, где числовые поля будут суммами всех полей записей исходного файла, а остальные поля равны значениям полей первой по порядку записи с заданным ключом. Исходный активный файл должен быть отсортирован или проиндексирован по заданному ключу.

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