Программирование >>  Разработка пользовательского интерфейса 

1 ... 24 25 26 [ 27 ] 28 29 30 ... 147


современным СУБД для персональных компьютеров, которые оснащены языковыми средствами, позволяющими достаточно легко написать простую программу.

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

4.1. Что такое язык программирования

В предыдущей главе мы познакомились с основными действиями, которые можно выполнить с помощью диалоговых средств в визуальной среде разработки. Очевидно, что, работая с СУБД, некоторые действия приходится выполнять многократно. Например, открывать одни и те же таблицы. Многие функции работы пользовательского приложения невозможно реализовать, используя только визуальные средства. Решить эти проблемы можно с помощью языка программирования.

В этом параграфе вы узнаете:

Из чего состоит язык программирования.

Где могут храниться нужные данные.

С помощью каких средств можно выполнять какие-либо действия с данными.

Как делятся в программе переменные и массивы по области действия.

При попытке описания языков программирования в рассматриваемых средствах разработки авторы столкнулись с достаточно большими трудностями. Не сомневаясь в своих интеллектуальных способностях, вину за это они целиком и полностью возложили на сами языки, а пособниками признали тех, кто их придумал - разработчиков из Microsoft.

Действительно, так как СУБД Access использует язык программирования Visual Basic, то остается рассказать о нем и языке программирования Visual FoxPro. Эти языки программирования имеют достаточно много общих черт, но одна из них - богатое историческое наследие - привела к тому, что современные объектно-ориентированные свойства в них сосуществуют с традиционными структурными составляющими. Причем число команд и функций, составляющих структурную основу языка, перевалило далеко за тысячу. Чтобы разобраться в этой лавине, начнем со структурной части рассматриваемых языков, а в следующей главе изучим их объектно-ориентированные возможности. При этом мы будем стараться максимально выделять общие черты рассматриваемых языков программирования и заранее приносим свои извинения опытным разработчикам за игнорирование каких-то, может быть, и достаточно важных особенностей каждого языка. Например, в наследство от Xbase в Visual FoxPro до сих пор можно символьные значения указывать не только в кавычках, но и в квадратных скобках. В Visual Basic так делать нельзя. Мы думаем, что стоит придерживаться общих возможностей и указывать символьные значения в кавычках, не упоминая о квадратных скобках.

Язык программирования представляет собой набор команд, которые последовательно обрабатываются интерпретатором и преобразуются им в машинный код, в свою очередь обрабатываемый микропроцессором. С помощью команд мы выполняем какие-либо действия, аналогично выбору команды в меню. Типичная структура команды:

COPY TO FileName [FIELDS FieldList] [Scope][FOR /Expression]

Название команды является ключевым элементом для ее идентификации. В связи с тем, что разработчики языка старались дать названиям команд максимальную смысловую нагрузку для их более легкого запоминания, в ряде случаев команды получились достаточно громоздкими. Что ж, если вы не хотите долго стучать по клавиатуре, откроем маленький секрет. Например, в Visual FoxPro названия команд в большинстве случаев можно сокращать до четырех символов. Если в каком-то случае так делать нельзя из-за опасности потерять уникальность идентификации, об этом обязательно будет написано в справочном файле Visual FoxPro при описании данной команды.

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

Часть команды, обозначенная словом Scope, позволяет задать диапазон записей, на которые будет воздействовать команда. Если мы используем эту возможность, то в команде вместо слова Scope надо использовать один из перечисленных вариантов: ALL - все записи в таблице; NEXT nRecords - указанное число записей после текущей (включая текущую); RECORD nRecordNumber - запись с указанным номером; REST - записи от текущей до конца таблицы.



Описание

Таблица 4.1. Способы представления данных Способ представления

Константы Единичные элементы данных,

записываемые в программном коде и неизменяемые в процессе работы

Переменные Единичные элементы данных, хранящиеся в оперативной памяти (ОЗУ)

Массивы Множество элементов данных, хранящихся

в ОЗУ

Записи в Множество строк, содержащих заранее таблицах определенные поля, каждое с

предопределенным фрагментом данных,

хранящихся в файле таблицы

Константы часто используются для включения в выражения каких-то предопределенных данных, которые не изменяются во время работы программы. В качестве констант мы можем использовать данные различных типов:

Символьные данные записываются в кавычках. Например, мы можем запомнить слово имя, используя его указание в кавычках: Имя .

Данные типа дата или дата и время в Visual FoxPro записываются в фигурных скобках: {10/10/95}. В Visual Basic функции этих двух типов данных выполняет один тип данных дата и время . Данные этого типа выделяются значками решетка : #10/10/95#.

Числовые данные используются без каких-либо разделителей.

Логические данные в качестве константы могут принимать одно из двух значений. В Visual FoxPro при записи они ограничиваются точками: .T. - соответствует истине (True), .F. - ложному значению (False). В Visual Basic присваивание любого отличного от нуля значения установит константу в значение True, и только 0 - в значение False.

Для работы с данными используются операторы, перечень которых приведен в табл. 4.2. Для того чтобы вспомнить обозначение типа данных, вернитесь к табл. 3.2.

Помните, что с одним оператором необходимо использовать данные одного типа! Многие из приведенных в табл. 4.2 операторов знакомы нашим читателям со школьной скамьи. Для некоторых же из этих операторов требуется более пространное пояснение.

Оператор $ используется для поиска символа или набора символов в каком-либо символьном выражении или поле примечаний. Искомый символ указывается слева от этого оператора.

Оператор == отнюдь не то же самое, что оператор = . Если последний можно идентифицировать словом равно , то для первого больше подходит название идентично . Например, если мы будем искать данные по условию cName = ИВАН , то Visual FoxPro будет считать верным результат, если найдет значения ИВАНОВ , ИВАНЕНКО , так же как и указанное слово ИВАН . Если же в выражении для поиска указать оператор == , то к верному результату приведет только найденное слово ИВАН . Это различие очень удобно использовать для поиска данных по неполному соответствию, когда точно неизвестно искомое значение.

Поля, переменные, константы, функции и операторы представляют собой элементы для составления выражений. При написании выражений необходимо учитывать приоритет выполнения операций:

1. Возведение в степень

Условие выполнения команды FOR позволяет предопределить выполнение команды в зависимости, например, от содержания данных в полях.

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



или использовать присвоение

2. Умножение и деление

3. Сложение и вычитание

4. Сложение символьных выражений

5. Операции сравнения

6. NOT

7. AND

8. OR

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

Локальные переменные (private) существуют только во время работы процедуры или программного файла (модуля), в котором они были определены. По умолчанию всем переменным, определяемым в программе, присваивается статус локальных. Явно определить статус переменной в Visual FoxPro можно командой

PRIVATE MemVarList PRIVATE ALL [LIKE Sceleton EXCEPT Sceleton]

В Visual Basic для этого используется команда Dim VarName [([Subscripts])] [As [New] Type][, VarName [([Subscripts])] [As [New] Type]]...

Static VarName [([Subscripts])] [As [New] Type][, VarName [([Subscripts])] [As [New] Type]]...

В последнем варианте объявленные переменные сохранят свои значения до конца работы программы.

Важная особенность локальных переменных заключается в том, что если они были определены с теми же именами, которые были объявлены ранее (в программе более высокого уровня), то после завершения работы программы старые значения будут восстановлены. Таким образом, локальные переменные, созданные в какой-либо процедуре, будут действовать и во всех вызываемых из нее процедурах и функциях, но перестанут быть доступными, как только мы возвратимся из создавшей их процедуры на более высокий уровень. Опции команды в Visual FoxPro позволяют не приводить полный список всех переменных, а использовать для их идентификации шаблон, который с помощью символов * и ? укажет распространение действия команды на переменные, имена которых соответствуют шаблону (LIKE), или на переменные, имена которых не соответствуют приведенному шаблону (EXCEPT). Напомним, что шаблон обычно включает общую часть имени и знаки замещения ? и * , первый замещает один алфавитно-цифровой символ, а второй - любое их число. Это позволяет знаком * задавать все имена, а несколькими знаками ? имена соответствующей длины.

В Visual Basic мы должны перечислить все объявляемые переменные.

При большом количестве однотипных переменных более эффективно использовать вместо них массивы, то есть одно- или двумерные таблицы переменных под общим именем. Обращение к элементам массива производится с помощью указания после имени массива в круглых или квадратных скобках нужных номеров строк и (или) столбцов. Перед использованием массивов в Visual FoxPro их надо объявить командой

DIMENSION ArrayName1(nRows1 [, nColumnsl]) [, ArrayName2(nRows2 [, nColumnsI])] ...

Каждый массив может содержать не более 65000 элементов, то есть предельная размерность двумерного массива может составить 254x255, 1000x65 и т. п. В последнем случае nRows1 =1000 и nColumns1=65, если значение nColumnsl не опpеделено, то массив одномеpный. После объявления массива по умолчанию всем его элементам присваивается логический тип данных со значением .F..

В Visual Basic задать массив можно в команде Dim, указав его размерность в параметре Subscripts.

Для задания нужного типа данных, а это относится и к переменным, в Visual FoxPro необходимо использовать команду

STORE Expression TO MemVarList ArrayList



1 ... 24 25 26 [ 27 ] 28 29 30 ... 147

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика