Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Clarion Programming / Описание переменных1

.htm
Скачиваний:
23
Добавлен:
02.05.2014
Размер:
63.12 Кб
Скачать

Описание переменных     Поиск Рубрикатор Форумы Новости сервера Учебный центр Книжный магазин Авторам Море(!) аналитической информации! :: CITFORUM.RU Вы можете приобрести полную версию сайта на CD-ROM CITFORUM.RU >>> ПРОГРАММИРОВАНИЕ      [http://www.citforum.ru/programming/clarion/cla_3_1.shtml]

Скоро! Восьмая техническая конференция

"Корпоративные базы данных 2003"

Москва, 17-18 апреля 2003 года

Компания Microsoft приглашает вас посетить бесплатный семинар

"День разработчика 2003",

который пройдет 11 марта в Санкт-Петербурге,

13 марта - в Екатеринбурге, 18 марта - в Киеве.

Cпешите зарегистрироваться! Количество мест ограничено! ЭЛЕМЕНТЫ ШАБЛОНОВ Элементы шаблонов предлагают формат масок для просмотра и/или редактирования переменных. Элементы шаблонов можно использовать как параметры для описания переменных типа STRING, ENTRY, или STRING OPTION в SCREEN-структурах; как параметры операторов STRING в REPORT-структурах; как параметры некоторых процедур и функций Клариона; или, как параметры описаний STRING, CSTRING и PSTRING. Есть семь типов элементов шаблонов: числовые и валюта, научная нотация, дата, время, образец, key-in template и строки. Шаблоны чисел и валюты @N[валюта][знак][заполнение]размер[группирование][места][валюта][знак][B] @N Все шаблоны чисел и валюты начинаются с @N. валюта Либо знак доллара ($) либо строковая константа, заключенная в тильды (~). Если есть признак знака и нет признака заполнения, то символ валюты будет "плавать" возле старшей левой цифры. Если же есть признак заполнения, то символ валюты остается в крайней левой позиции. Если символ валюты стоит после размера и группирования, то он будет располагаться в конце показываемого числа.

знак Задает формат вывода отрицательных чисел. Если тире стоит перед ЗАПОЛНЕНИЕМ и РАЗМЕРом, то отрицательные числа будут выводиться с ведущим знаком "минус". Если же тире идет после РАЗМЕРа, ГРУППИРОВАНИя, places, и ВАЛЮТы, то числа будут выводиться с хвостовым минусом. Если в обоих позициях, предназначенных для ЗНАКа стоят скобки, то отрицательные числа будут выводиться без минуса, но заключенными в скобки.

заполнение Указывает вид ведущих нулей нули, пробелы или звездочки (*). Если ЗАПОЛНЕНИЕ опущено, то ведущие пробелы подавляются. 0 Ведущие нули выводятся, ГРУППИРОВАНИЕ подавлено Вместо нулей пробелы, ГРУППИРОВАНИЕ подавлено * Вместо ведущих нулей выводятся звездочки

размер РАЗМЕР требуется, чтобы указать общее число значащих цифр для вывода, включая количество цифр в признаке МЕСТА и всех символов форматирования.

группирование Признак ГРУППИРОВАНИЯ (кроме запятой, которая принимается по умолчанию) может быть помещен справа от РАЗМЕРА, для указания разделитель групп из трех цифр. . Порождает точки - Порождает тире _ Порождает пробелы (НЕ подчеркивания!) места Задает символ десятичного разделителя и число цифр в дробной части. Число цифр в дробной части должно быть меньше, чем РАЗМЕР. Десятичным разделителем может быть точка (.), слабое ударение ('), или буква "v" (только для описания формата хранения STRING-полей, а не для вывода). . Точка порождает точку как десятичный разделитель ` Слабое ударение порождает запятую как десятичный разделитель. v НЕ порождает десятичный разделитель (только для хранения STRING-полей)

B Если значение нулевое, то число выводится в виде пробелов.

Элементы шаблонов чисел и валюты форматируют числа для вывода на экран или в отчет. Если значение больше, чем можно вывести в текущем шаблоне, такое значение выводится в виде строки из звездочек. Пример: Число Результат Формат @N9 4,550,000 Девять цифр, группирование запятыми (по умолчанию) @N_9B 4550000 Девять цифр, без группирования, ведущие нули выводятся как пробелы @N09 004550000 Девять цифр, ведущие нули выводятся @N*9 ***45,000 Девять цифр, заполнение звездочками, группирование запятыми @N9_ 4 550 000 Девять цифр, группирование пробелами @N9. 4.550.000 Девять цифр, группирование точками Десятич.

дробь Результат Формат @N9.2 4,550.75 Две цифры в дробной части, десятичный разделитель - точка @N_9.2B 4550.75 То же, без группирования, если ноль, то выводится строка пробелов. @N_9'2 4550,75 Две цифры в дробной части, десятичный разделитель запятая @N9.'2 4.550,75 Десятичный разделитель запятая, группирование точками @N9_'2 4 550,75 Десятичный разделитель запятая, группирование пробелами Со знаком Результат Формат @N-9.2B 2,347.25 Ведущий минус, если ноль, то вывести пустую строку @N9.2- 2,347.25- Хвостовой минус @N(10.2) (2,347.25) Вывести в скобках, если отрицательное Знак доллара Результат Формат @N$9.2B $2,347.25 Ведущий знак доллара, вывести пустую строку, если ноль @N$10.2- $2,347.25- Ведущий знак доллара, хвостовой минус, если отрицательное @N$(11.2) $(2,347.25) Ведущий знак доллара, вывести в скобках, если отрицательное Национальные валюты Результат Формат @N12_'2~ F~ 1 5430,50 F Франция @N~L. ~12' L.1.430.050 Италия @N~L~12.2 L1,240.50 Великобритания @N~kr~12'2 kr1.430,50 Норвегия @N~DM~12'2 DM1.430,50 Германия @N12_'2~ mk~ 1 430,50 mk Финляндия @N12'2~ kr~ 1,430.50 kr Швеция Только хранение Шаблоны: Variablel STRING(@N_6v2) !Шесть байт хранятся БЕЗ десятич- !ного разделителя CODE Variablel="1234.56" !Храним в виде '123456' SHOW(1,1,Variablel,@N_7.2) !Выводим с десятичн. точкой: '1234.56' Шаблоны научной нотации @Em.n[B] @E Все шаблоны научной нотации начинаются с @E. m Общее число символов в формате, предлагаемом данным шаблоном. n Число цифр после десятичной точки. B Если число равно нулю, то вывести пустую строку Шаблоны научной нотации форматируют очень большие или же очень маленькие числа. Вывод в виде десятичного числа в степени десяти. Пример: Шаблон Значение Результат @E9.0 1,967,865 .20e+007 @E12.1 1,967,865 1.9679e+006 @E12.1B 0   @E12.1 1,967,865 1.9679 e+006 @E12.1 .000000032 3.2000e-008Шаблоны даты @Dn[s][B] @D Все шаблоны даты начинаются с @D. n Номер шаблоны даты. Допустимые номера от 1 до 16. s Разделитель. Слэш (/) ставится между днем, месяцем и годом в большинстве шаблонов даты. Можно использовать альтернативные разделители, как то:

. Порождает точки

` (слабое ударение)порождает запятые

- Порождает тире

_ (подчеркивание) порождает пробелы B Вывести пустую строку, если число равно нулю. Даты можно хранить в числовых переменных (обычно LONG), DATE-полях (для совместимости с Btrieve), или в STRINGах описанных в виде дат. Дата, хранящаяся в числовой переменной называется Стандартной Кларионовской датой. Ее значение представляет собой количество дней, прошедших с 28 декабря 1800 года. Шаблон даты преобразует это число в один из форматов даты. Для ввода данных нельзя использовать шаблоны @D3, @D4, @D7 и @D8 поскольку в них требуется вводить не только цифры, но и буквы. Пример: Шаблон Формат Результат @Dl mm/dd/yy 10/31/59 @D2 mm/dd/yyyy 10/31/1959 @D3 mmm dd, yyyy OCT 31,1959 @D4 mmmmmmmmm dd, yyyy October 31, 1959 @D5 dd/mm/yy 31/10/59 @D6 dd/mm/yyyy 31/10/1959 @D7 dd mmm yy 31 OCT 59 @D8 dd mmm yyyy 31 OCT 1959 @D9 yy/mm/dd 59/10/31 @D10 yyyy/mm/dd 1959/10/31 @D11 yymmdd 591031 @D12 yyyymmdd 19591031 @D13 mm/yy 10/59 @D14 mm/yyyy 10/1959 @D15 yy/mm 59/10 @D16 yyyy/mm 1959/10 Альтернативные разделители @Dl. mm.dd.yy Разделитель точка @D2- mm-dd-yyyy Разделитель тире @D5_ dd mm yy Подчеркивание порождает разделитель пробел @D6` dd,mm,yyyy Слабое ударение порождает разделитель запятуюШаблоны времени @Tn[s][B] @T Все шаблоны времени начинаются с @T. n Номер формата времени. Допустимые номера форматов от 1 до 6. s Разделитель. Двоеточие (:) ставится по умолчанию между часами, минутами и секундами в большинстве форматов времени. Можно использовать альтернативные разделители, как то:

. Порождает точки

' (слабое ударение) порождает запятые

- Порождает тире

_ (подчеркивание) порождает пробелы B Если значение равно нулю, то вывести пустую строку. Время можно хранить в числовой переменной (обычно LONG), в TIME- полях (для совместимости сBtrieve), или в STRINGах, описанных в формате времени. Время, хранящееся в числовой переменной называется стандартным кларионовским временем. Оно представляет из себя количество сотых долей секунды, прошедших с полуночи. Шаблон времени переводит это число в один из 6 форматов времени. Нельзя использовать для ввода шаблоны (@T3 и @T6), в которых требуется вводить не только цифры, но и буквы. Пример: Шаблон Формат Результат @T1 hh:mm 17:30 @T2 hhmm 1730 @T3 hh:mmXM 5:30PM @T4 hh:mm:ss 17:30:00 @T5 hhmmss 173000 @T6 hh:mm:ssXM 5:30:00PM Альтернативные разделители @T1. hh.mm Разделитель точка @T1- hh-mm Разделитель тире @T3_ hh mmXM Подчеркивание порождает пробелы @T4' hh,mm,ss Слабое ударение порождает запятыеШаблоны "по образцу" @p[<][#][x]P[B] @P Все шаблоны "по образцу" начинаются с разделителя @P и заканчиваются разделителем P. Регистр обоих разделетелей должен быть один и тот же. < Целочисленная позиция. Если в этой позиции ноль, то вывести пробел. # Целочисленная позиция. В этой позиции вывести цифру, независимо от ее значения. x Необязательный символ для вывода. Эти символы будут присутствовать в выводной строке. p Все шаблоны "по образцу" должны заканчиваться на P. Если разделитель @p введен на нижнем регистре, то и конечный разделитель P тоже должен быть в нижнем регистре. B Если ВСЕ число равно нулю, то вывести пустую строку. Шаблоны "по образцу" содержат необязательные целочисленные пози- ции и необязательные символы редактирования. Любой символ кроме < или # считается символом редактирования, который появится в форматированной строке-результате. Разделители @P и P чувствительны к регистру, на котором они введены. Это сделано для того, чтобы, если скажем, надо ввести символ "Р", то можно использовать разделители "р" и наоборот. Пример: Шаблон Значение Результат @P###-##-####P 215846377 215-84-6377 @P<#/##/##P 103159 10/31/59 @P(###)###-####P 3057854555 (305)785-4555 @P###/###-####P 7854555 000/785-4555 @p<#:##PMp 530 5:30PM @P<#'<#"P 506 5' 6" @P<#Ib. <#oz.P 902 91b. 2oz. @P4##A-#P 112 411A-2Key-in Template Pictures @K[@][#][<][x][\][?][^][_][Ѓ]K[B] @K Все key-in template шаблоны начинаются разделителем @K и завершаюися разделителем K. Регистр обоих "К" должен быть одним и тем же. @ Разрешены только буквы на верхнем и нижнем регистрах. # Разрешены целые числа от 0 до 9. < У целых чисел выводить лидирующие нули пробелами. x Представляет необязательные постоянные символы для показа (любые символы, пригодные для вывода на экран). Эти символы попадают без изменений в результирующую строку. \ Следующий за \ символ выводить на экран как печатаемый. Так можно включить в результирующую строку любые символы форматирования (@,#,<,\,?,^,_,Ѓ) как обычные печатаемые символы. ? В этой позиции может быть любой символ. ^ В этой позиции разрешены только буквы на верхнем регистре. В этой позиции разрешены только буквы на нижнем регистре | Ограничитель. Только данные введенные до | и печатаемые символы, введенные до | будут помещены в результирующую строку. K Все key-in template шаблоны завершаются символом "K". Если разделитель @k был введен на нижнем регистре, то и завершающий k должен быть введен на нижнем регистре. B Если ВСЕ число рано нулю, то вывести пустую строку. Key-in шаблоны могут содержать целочисленные позиции ( # < ), символьные позиции ( @ ^ _ ), места для любых символов ( ? ), и печатаемые символы. Любой символ, кроме символов форматирования, рассматривается как печатаемый, который попадает в форматированную строку-результат. Разделители @K иd K чувствительны к регистру по той же причине, что и @P и P в шаблонах "по образцу". Key-in Шаблоны специфичны для полей типа STRING, PSTRING, и CSTRING для возможности произвольного редактирования и проверки допустимости поля. Использование key-in шаблонов, содержащих любые алфавитные индикаторы ( @ ^ _ ) с полями для ввода чисел дает непредсказуемые результаты. Поскольку использование режима вставки для key-in шаблонов, может также привести к непредсказуемым результатам, то key-in шаблоны всегда принимают данные в режиме надпечатки, даже если есть атрибут INS. Пример: Шаблон Введено значение Строка-результат @K###-##-###K 215846377 215-84-6377 @K####Ѓ-####K 33064 33064 @K####Ѓ-####K 330643597 33064-3597 @K<# ^^^ ##K 10AUG59 10 AUG 59 @K(###)@@@-##\@##K 305abc4555 (305)abc-45@55 @K###/?##-####K 7854555 000/785-4555 @k<#:##^Mk 530P 5:30PM @K<#' <#"K 506 5' 6" @K4#_#A-#K 1g12 41glA-2Строковые шаблоны @Slength @S Все строковые шаблоны начинаются с @S. length Определяет количество символов в шаблоне формата. Строковый шаблон описывает НЕформатированную строку заданной длины. Пример: Name STRING(@S20) !20-символьное поле-строка АТРИБУТЫ ПЕРЕМЕННЫХ PRE (префикс метки) PRE(prefix) prefix Допустимые символы буквы, цифры от 0 до 9 и символ подчеркивания. Префикс должен ничинаться с буквы и не должен быть зарезервированм словом. Атрибут PRE предусматривает префикс метки для сложных структур данных. Он используется для того, чтобы различать переменные с одинаковыми именами в разных структурах. При обращении к переменной исполняемымы операторами, при присвоениях и передаче в списках параметров, префикс присоединяется к метке двоеточием (Pre:Метка). PRE можно использовать со следующими структурами данных: DETAIL FILE FOOTER GROUP HEADER OPTION QUEUE RECORD REPEAT REPORT SCREEN   Пример: MasterFile FILE,DRIVER('Clarion'),PRE(Mst) !Declare master Record RECORD ! file layout AcctNumber LONG . . Detail FILE,DRIVER('Clarion'),PRE(Dtl) !Declare detail ! file layout Record RECORD AcctNumber LONG . . GROUP,PRE(Mem) !Declare some memory variables Message STRING(30) Page LONG Line LONG Device STRING(30) . CODE IF Dtl:AcctNumber <> Mst:AcctNumber !Is it a new account Mem:Message - 'New Account' ! display message DO MatchMaster ! get new record . См. также: Зарезервированные слова DIM (размерность массива) DIM(измерение,....,измерение) измерение Числовая константа, которая задает количество элементов в данном измерении массива. Атрибут DIM объявляет перемнную-массив. Такая переменная повторяется столько раз, сколько указано в параметрах ИЗМЕРЕНИЕ. Многомерные массивы можно рассматривать как вложенные одномерные. Каждое измерение массива имеет соответствующий индекс. Таким образом, обращаясь к переменной - элементу трехмерного массива, надо указать три индекса. Хотя на число измерений не накладывается ограничений, но размер массива не должен превышать 65,520б.С атрибутом DIM можно использовать следующие типы данных: SHORT REAL STRING CSTRING PSTRING ULONG USHORT SREAL DATE TIME Индексы однозначно определяют конкретный элемент массива. Список индексов содержит индексы для каждого ИЗМЕРЕНИЯ массива. В списке, индексы отделяются друг от друга запятыми, а весь список заключается в квадратные скобки ([ ]). Индекс может быть числовой константой, выражением или функцией. Если надо обратиться ко всему массиву целиком, то надо использовать метку этого массива без списка индексов. Структура GROUP - особый случай. Каждый уровень вложенности добавляет индексы и GROUP и ее переменным. Данные, описанные в GROUP можно использовать точно так же, как и собственно GROUP. Пример: Screen GROUP !Текст на экране Row GROUP,DIM(25) !25 строк Pos GROUP,DIM(80) !Две тысячи знакомест Attr BYTE !Байт атрибута Char BYTE !Собственно символ . . . !Завершаем все три группы В предыдущей группе: Screen это 4,000байтная GROUP Row[1] это 160байтная GROUP Pos[1,1] это 2хбайтная GROUP Attr[1,1] это BYTE Char[1,1] это BYTE Month STRING(10),DIM(12) !Размерность для месяца - 12 CODE CLEAR(Month) !Весь массив заполнить пробелами Month[1] = 'January' !Заполнить массив названиями Month[2] = 'February' MonthE3] = 'March' См. также: MAXIMUM Массивы как параметры процедур и функций Массив можно передать в PROCEDURE или FUNCTION. Прототип, описанный в MAP-структуре должен описывать тип данных "массив" как параметр-переменную ("передается по адресу") с пустым списком индексов. Вызывающий оператор может передать массив в ROCEDURE или FUNCTION. Пример: PROGRAM MAP MainProc AddCount(*LONG[,],*LONG[,]) !Передаем 2 двумерных . !масива типа LONG CODE MainProc MainProc PROCEDURE TotalCount LONG,DIM(10,10) CurrentCnt LONG,DIM(10,10) CODE AddCount(TotalCount,CurrentCnt) !Вызывая процедуру, переда- !ем ей массивы AddCount PROCEDURE(Tot,Cur) !Процедуре нужны два массива CODE LOOP I# = 1 TO MAXIMUM(Tot,1) !Цикл по первому индексу LOOP J# = 1 TO MAXIMUM(Tot,2) !Цикл по второму индексу Tot[I#,J#l += Cur[I#,J#] ! увеличить TotalCount на . . ! CurrentCnt CLEAR(Cur) !Очистить массив CurrentCnt RETURN См. также: DIM, Прототипы процедур и функций, MAXIMUM EXTERNAL (переменная описана извне) EXTERNAL Атрибут EXTERNAL указывает на то, что переменная, которой он присвоен, описана во внешней библиотеке. Таким образом, переменная с атрибутом EXTERNAL определена и может использоваться кларионовским кодом, но под нее не будет выделена память. Память для такой переменной выделяется самой внешней библиотекой. Этот атрибут позволяет Clarion-программам иметь доступ к полям, описанным как PUBLIC во внешних библиотеках. EXTERNAL допустим только для переменных, описанных ВНЕ структур FILE, QUEUE или GROUP. Пример: PROGRAM MAP MODULE('External.Obj') AddCount,PASCAL !External library with PASCAL . . ! calling convention TotalCount LONG,EXTERNAL !Variable declared in external library См. также: NAME NAME (указать внешнее имя) NAME([ constant

variable ] constant Строковая константа. variable Метка STRING-переменной, описанной в области описания глобальных данных или в области описания данных модуля-члена. Атрибут NAME задает "внешнее" имя. Он полностью независим от атрибута EXTERNAL - между ними не требуется никакой связи, хотя оба этих атрибута могут быть у одной и той же переменной. Атрибут NAME можно использовать в прототипах процедур и функций, применять к FILE, KEY, INDEX, MEMO, любому полю, описанному в FILE или QUEUE структурах, или к любому полю вне структуры. Атрибут NAME имеет различные свойства, в зависимости от того, где он использован. NAME(константа) можно задать в прототипах процедур или функций. Константа - это внешнее имя, используемое компоновщиком для идентификации процедуры или функции из внешней библиотеки. Атрибуты NAME(константа) или NAME(переменная) в описании FILE задает ДОСовскую спецификацию полного имени файла. Если константа или переменная не содержит диск и путь, то подразумеваются текущие диск и каталог. Если опущено расширение файла, то подразумевается расширение, стандартное для данного файлового драйвера. Некоторые файловые драйверы требуют, чтобы KEYи, INDEXы, или MEMO-поля были в отдельных файлах. Таким образом, NAME можно применить к описаниям KEY, INDEX или MEMO. Атрибут NAME без константы или переменной, ссылается на метку того описательного оператора, к которому он был применен (включая префикс, если таковой указан). NAME(константа) может применятся к любому полю, описанному в структуре RECORD. Это позволяет использовать имена полей, не нарушающих ограничений на имена, накладываемые отдельными файловыми драйверами. NAME(константа) можно применять к любому полю в структуре QUEUE. Так достигается возможность динамических сортировок во время исполнения. NAME(константа) можно также применять к любой переменной, описанной вне какой-либо структуры. Это дает возможность компоновщику по внешнему имени идентифицировать переменную, описанную во внешней библиотеке. Если переменная имеет еще атрибут EXTERNAL, то она описана, и память под нее выделяется самой внешней библиотекой. Без атрибута EXTERNAL, такая переменная описывается, и память под нее выделяется в кларионовской программе, и она является внешней по отношению ко внешней библиотеке. Пример: PROGRAM MAP MODULE('External.Obj') AddCount(LONG),LONG,C,NAME('_AddCount') !C function named ' AddCount, . . Cust FILE,PRE(Cus),NAME(CustName) !Filename in CustName variable CustKey KEY('Name'),NAME('c:\data\cust.idx') !Declare key,cust.idx Record RECORD Name STRING(20),NAME !Default NAME to 'Cus:Name' . !End file declaration SortOue QUEUE,PRE(Que) Fieldl STRING(10),NAME('FirstField') !QUEUE SORT NAME Field2 LONG,NAME('SecondField') !QUEUE SORT NAME . CurrentCnt LONG,EXTERNAL,NAME('Cur') !Field declared public in ! external library as 'Cur' TotalCnt LONG,NAME('Tot') !Field declared external !in external library as 'Tot' См. также: прототипы процедур и функций, FILE, KEY, INDEX, QUEUE, EXTERNAL OVER (разделяет место в памяти) OVER(переменная) переменная Метка переменной, которая уже занимает память, подлежащую разделу. Атрибут OVER позволяет ссылаться на один и тот же участок памяти двумя разными путями. Поле, описанное с атрибутом OVER, должно быть НЕ больше, чем переменная, поверх которой она накладывается (хотя, конечно, она может быть меньше). (SPA. Для тех кому это трудно понять сразу, как мне было в свое время, скажу что этот механизм аналогичен паскалевским записям с вариантами) Поле в структуре GROUP НЕ может быть описано поверх переменной, которая находится ВНЕ этой структуры GROUP. Также, нельзя описать поле поверх переменной, которая является частью списка параметров процедуры или функции. Пример: CustNote FILE,PRE(Csn) !Declare CustNote file Notes MEMO(2000) !The memo field Record RECORD CustID LONG . . CsnMemoRow STRING(IO),DIM(200),OVER(Csn:Notes) !Csn:Notes !можно рассматривать как одно !целое или блоками по 10 байт См. также: DIM ДИРЕКТИВЫ КОМПИЛЯТОРА EQUATE (назначить метку) метка EQUATE( label

constant

picture ) метка Метка исполняемого оператора. Используется для присвоения оператору еще одной метки. constant Числовая или символьная константа. Используется для описания сокращенного названия содержимого константы, и позволяет легко изменять и находить эту константу. picture Элемент шаблона. Дает сокращенное имя шаблону. Тем не менее, форматтеры экранов и отчетов в кларионовском редакторе не распознают назначенные метки как разрешенные шаблоны. Директива EQUATE не занимает память во время исполнения. Она используется для присвоения метки другой метке или константе. Метка директивы EQUATE не может быть такой же, как ее параметр. Пример: Init EQUATE(SetUpProg) !Обзовем процедуру по другому Off EQUATE(0) !Off означает нуль On EQUATE(1) !On означает один Pi EQUATE(3.1415927) !Значение числа ПИ EnterMsg EQUATE('Press Ctrl-Enter to SAVE') SocSecPic EQUATE(@P###-##-##IfltP)!Формат номера карточки !социального страхован. См. также: Зарезервированные слова SIZE (размер памяти в байтах) SIZE( label

constant

picture ) метка Метка ранее описанной переменной. constant Числовая или символьная константа. picture Элемент шаблона. SIZE заставляет компилятор сообщить количество памяти (в байтах) выделенной для хранения параметра. Пример: SavRec STRING(1),DIM(SIZE(Cus:Record) !Строк столько же, каков размер записи StringVar STRING(SIZE('Clarion Software, Inc.')) !Строка должна быть достаточной для этой !константы длины LOOP I# = 1 TO SIZE(ParseString) !Цикл по все символам строки PicLen = SIZE(@P(###)###-####P) !Сохраняем размер шаблона Назад | Содержание | Вперед

  Citforum.ru приглашает вас посетить семинары:

25 марта 2003 года, Москва

ИТ-бюджетирование в банковских учреждениях. 26 марта 2003 года, Москва

Как анализировать эффективность ИТ банковских учреждений. Практический опыт проведения работ. 27 марта 2003 года, Москва

ИТ в банковских учреждениях. Разработка стратегии развития ИС. 19-21 марта 2003 года, Москва

26-28 марта 2003, Санкт-Петербург.

Теория и практика обеспечения безопасности информационных систем 17 апреля 2003 года, Москва

6 марта и 24 апреля 2003, Санкт-Петербург.

"Практическое применение международного стандарта безопасности информационных систем ISO 17799" 8 апреля 2003 года, Москва

3 апреля 2003, Санкт-Петербург.

"Обеспечение комплексной информационной безопасности предприятия" 10 апреля 2003 г., Москва.

14 апреля 2003 г., Санкт-Петербург

"Анализ рисков информационных систем компаний" Рекомендуем CD Domina Security: Управление информационными рисками корпоративных ИС Internet/Intranet Коммерческая тайна и экономическая безопасность бизнеса Применение стандарта безопасности ISO 17799

Новые поступления в разделе "Подробно о лучших книгах": Компьютерные системы передачи данных, Вильям Столлингс Качество обслуживания в сетях IP, Шринивас Вегешна Цифровая связь: теоретические основы и практическое применение, Скляр Б.

Аутентификация: от паролей до открытых ключей, Дж. Уинзор Энциклопедия SQL. 3-е изд+CD, Грофф Дж., Вайнберг П. Современные операционные системы. Изд.2, Э. Таненбаум

Поиск Рубрикатор Форумы Новости сервера Учебный центр Книжный магазин Реклама на сервере <<< В начало | Наверх Быстрый переход >>>   Internet-технологии  Сетевые технологии  Базы данных  Операционные системы  Программирование  Аппаратные платформы  Материалы конференций  Пользователям и преподавателям  Корпоративные ресурсы  Книги, которые мы выбираем   Комментарии: mailto:info@citforum.ru?Subject='From bottom of CIT FORUM' u="u266.74.spylog.com";d=document;nv=navigator;na=nv.appName;t="";p=1; sz=" width=88 height=31 "; hl=history.length;d.cookie="b=b";c=0; bv=Math.round(parseFloat(nv.appVersion)*100); if (d.cookie) c=1;n=(na.substring(0,2)=="Mi")?0:1; if((n==0)||(bv >= 300)){rn=Math.random();t=(new Date()).getTimezoneOffset();} else {rn=0;} z="p="+p+"&rn="+rn+"&t="+t+"&c="+c+"&hl="+hl; if (self != top) { fr=1;} else { fr=0;} r=escape(d.referrer);r1=""; sl="1.0";h=0; pl="";sl="1.1"; if((n==1) && (bv >= 300)) { for(var i = 0; i < nv.plugins.length; i++) pl += nv.plugins[i].name+":"; } j = (navigator.javaEnabled() ? "Y" : "N"); sl="1.2";s=screen;wh=s.width+'x'+s.height; px=(n==0)?screen.colorDepth:screen.pixelDepth;z+="&wh="+wh+"&px="+px; sl="1.3" y=""; y+=""; y+=""; y+=""; d.write(y); Copyright © Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.