powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Type(variable) = "U"
10 сообщений из 10, страница 1 из 1
Type(variable) = "U"
    #32239474
I_l_I A M u JI b
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди, подскажите кто-нибудь, как я могу переменную с типом "U"
(Undefined type of expression) перевести в строкую
Спасибо.
...
Рейтинг: 0 / 0
Type(variable) = "U"
    #32239495
Равиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, что никак :)
Потому что, если не отпределяется тип переменной, то что уж говорить о его значении :)

PS А Вы имя переменной в функции TYPE включили в кавычки, типа
TYPE("Var_Name") ?
...
Рейтинг: 0 / 0
Type(variable) = "U"
    #32239499
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос не ясен. На всякий случай, нарушены правила вызова type - требуется строковый аргумент:
Код: plaintext
1.
2.
if type( "m.variable" ) =  "U" 
...
endif

а не так как написали вы.
...
Рейтинг: 0 / 0
Type(variable) = "U"
    #32239630
I_l_I A M u JI b
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пусть
VARIABLE = 'number = 12345'
тогда
?type(variable)
покажет U
А как мне эту VARIABLE перевести в строковый тип
...
Рейтинг: 0 / 0
Type(variable) = "U"
    #32239649
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз повторю, что ты неверно вызываешь type - такое впечатление, что ты полностью проигнорировали два ответа.

Ладно, для тех кто в танке:

Код: plaintext
variable = 'number = 12345' 


Вот, сравни свою строку:
Код: plaintext
? type(variable) && покажет U 

c
Код: plaintext
? type( "m.variable" ) && покажет C 


Есть разница? Это ты хотел?
...
Рейтинг: 0 / 0
Type(variable) = "U"
    #32239654
I_l_I A M u JI b
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, именно это я и хотел.
Но остается вопрос, почему, когда
?Type("m.variable") &&Покажет N
?Type(m.variable) &&Покажет:"Function argument value,type, or couny is invalid"

а когда
?Type("m.variable") &&Покажет С
?Type(m.variable) &&Покажет U
Странно.
...
Рейтинг: 0 / 0
Type(variable) = "U"
    #32239675
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что функция type (третий раз повторяю) ожидает на входе строковый аргумент, поэтому когда ты пытаешься скормить ему numeric fox вопит благим матом: караул, убивают ("Function argument value,type, or couny is invalid").

Короче, RTFM TYPE.
...
Рейтинг: 0 / 0
Type(variable) = "U"
    #32239749
Aijik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шамиль, если все вышеперечисленное всё равно вызывает затруднения, тогда юзайте VARTYPE(). В ней кавычки не нужны, но появилась она только в VFP6, если у вас фокс более ранних версий, то тогда только TYPE(). Если верить хэлпу, VARTYPE к тому же и быстрее!
У ф-ции VARTYPE() есть второй параметр, который при передаче в него .T. возвращает реальный тип переменной, значение которой сейчас равно NULL:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
oMyForm = CREATEOBJECT( "form" )

?ISNULL(oMyForm) &&.F.
?TYPE( "oMyForm" )  && "O" 
?VARTYPE(oMyForm) && "O" 

oMyForm.Release()  &&Релизим форму. Результат:  переменная равна NULL, но тип ее все равно до сих пор  "O"  (см. Debugger)

?ISNULL(oMyForm) &&.T.
?TYPE( "oMyForm" )  && "O" 
?VARTYPE(oMyForm) && "X"  (так VARTYPE отображает NULL)
?VARTYPE(oMyForm, .T.) & "O"  



Есть еще одна тонкость:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
* Допустим переменной aaa не существует:
?TYPE( "aaa" )  &&  "U" 
?VARTYPE(aaa)  &&  "U" 

?TYPE( "5 *aaa")  &&  "U" 
*но:
?VARTYPE( "5 *aaa")  && Variable 'AAA' is not found


*Другой вариант того же самого

a= "Вася" 
b= 5 
?TYPE( "a+b" ) && "U" 
?VARTYPE(a+b) && Operator/operand type mismatch
...
Рейтинг: 0 / 0
Type(variable) = "U"
    #32239756
Aijik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?VARTYPE("5*aaa") && Variable 'AAA' is not found

Сорри, описка, без кавычек конечно же:

Код: plaintext
?VARTYPE( 5 *aaa)  && Variable 'AAA' is not found
...
Рейтинг: 0 / 0
Type(variable) = "U"
    #32239968
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция TYPE() работает как макроподстановка.

Она пытается вычислить значение функции записанной в строковой константе и выдает тип результата этого вычисления.

Повторю еще раз, то что тебе уже многократно говорили: В качестве аргумента для функции TYPE() может быть только и исключительно символьные данные.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Type(variable) = "U"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]