Анимация
JavaScript
|
Главная Библионтека Описание Таблица 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 MemVar Array = Expression = Пpи указании идентификатоpа массива без аpгументов указанное значение Expression пpисваивается всем элементам массива. Например: DIMENSION aMembers(4,2) STORE 5 TO aMembers В Visual Basic такая же процедура будет выглядеть следующим образом (нам придется использовать цикл, о чем мы будем говорить в дальнейшем): Dim aMembers(4,2), nX As Integer For nX = 0 To 4 aMembers(nX) = 5 Next nX Для определения переменной типа даты в Visual FoxPro можно использовать следующую команду, которая одновременно присвоит ей нулевое значение: STORE CTOD(. TO dDate STORE {} TO dDate Для присвоения конкретного значения лучше воспользоваться вариантом с фигурными скобками, например: SET DATE GERMAN STORE {01.01.91} TO dDate Для форматирования значения даты в Visual FoxPro удобно использовать установочную команду SET DATE. В Visual Basic присвоение значения даты можно выполнить следующим образом: Dim dToday As Date dToday = #1/11/96 # А для форматирования даты надо использовать функцию Format(Expression [, Format [, FirstDayOfWeek [, FirstWeekOfYear]]]) Например: dDate = Format(dToday, "dd.mm.yy") Возвращает значение переменной dToday в виде 01.11.96. Глобальные переменные (public) будут сохранять свои значения во всех программных файлах и вызываемых ими процедурах. Для объявления переменных и элементов массива глобальными в Visual FoxPro используется команда PUBLIC MemVarList [ARRAY] ArrayName1(nRows1 [, nColumns1]) [, ArrayName2(nRows2 [, nColumns2])]... В Visual Basic такая команда будет выглядеть аналогично команде Dim Public VarName [([Subscripts])] [As [New] Type][, VarName [([Subscripts])] [As [New] Type]] ... 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [ 26 ] 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |