Код Visual FoxPro
x = "abc"
= XUPPER(@x)
? x
void FAR Upper(ParamBlk FAR *parm)
{
char FAR *pString;
Value val;
int i;
//
// _Load() and _Store are the functions of interest for pass-by-reference.
//
//
// FoxPro doesn't check the type of pass-by-reference arguments, so we do.
//
if (val.ev_type != 'C')
{
_Error(9); // "Data type mismatch"
}
pString = _HandToPtr(val.ev_handle);
for (i = 0; i < val.ev_length; i++)
{
if ('a' <= *pString && *pString <= 'z')
{
*pString += ('A' - 'a');
}
pString++;
}
_Store(&parm->p[0].loc, &val);
//
// We need to free the handle that we created with _LOAD()
//
_FreeHand(val.ev_handle);
}
FoxInfo myFoxInfo[] =
{
{"XUPPER", (FPFI) Upper, 1, "R"},
};
FoxTable _FoxTable =
{
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Новое на сайте
-
Обновлен портфель программиста
Добавлены: Установка HTML Help (Создание справочной системы), Imagedit.zip - Графический редактор ( ico и bmp), Библиотека локализации HTML Help (Русский) -
Новые примеры программ
Установка библиотек, Игровая программа "Охота на лис", Установка библиотек "Охота на лис", plastic -"Платежки", Библиотеки (на FPD26), platan -"Платежки" (на Clipper 5.2) -
Обновленна справка
Подсказки, технология программирования и использование Visual FoxPro. Команды, функции, операторы, объекты, свойства, события и методы.