Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Вниз

Как работает функция VarType?   Найти похожие ветки 

 
aXLES1984   (2012-03-06 16:51) [0]

Здравствуйте! Мне необходимо узнать что за данные храниться в переменной
Пишу:
где a – некоторая переменная
Showmessage(VarTypeAsText(VarType(a)));
Система говорить – “Unicode String”

Изменил код на:
Showmessage(VarTypeAsText(VarType("1234")));
Все равно– “Unicode String”.

Какой же там String если стоит число? VarTYPE работает неверно? Или я что-то не так делаю?


 
Anatoly Podgoretsky ©   (2012-03-06 17:09) [1]

> aXLES1984  (06.03.2012 16:51:00)  [0]

Если апострофы, то какое же это число


 
aXLES1984   (2012-03-06 17:36) [2]

Понял НАдо вот  так писать: Showmessage(VarTypeAsText(VarType(1234)));

Но проблема с переменной у меня осталась: есть переменная a типа Variant, вот если я пишу явно a:=234 - то функция Vartype работает нормально, а если я заношу в a - данные, скопированные в буфер обмена, тоже 234, то возврат идет уже UnicodeString, хотя переменная а содержит тоже самое....

Не подскажите как обойти?


 
Anatoly Podgoretsky ©   (2012-03-06 17:49) [3]

> aXLES1984  (06.03.2012 17:36:02)  [2]

Значит а не того типа, раз позволяет вставить из буфера обмена, который
строка


 
Dimka Maslov ©   (2012-03-06 17:50) [4]

В буфере обмена может находиться ТОЛЬКО текст (ну или специфические двоичные данные, дескрипторы и прочая шняга, не про это вопрос). Поэтому, когда мы переменной типа вариант присваиваем содержимое вышеозначенного буфера обмена - там будет строка, но не как не её числовое представление. Обходить это не надо, надо с этим жить. Если уж совсем припёрло, пишем а := Integer(a). НО! Если в а не будет преобразуемой в целое число строки, получим исключение.


 
Avil   (2012-03-06 19:39) [5]

Чтобы по строке определить тип придется помучиться, перебирая варианты преобразования (дата, буль, плавающая точка, целое, если ничего не подошло, то строка). Лучше, конечно, если заранее известно, какой результат будет, и преобразовывать в него.


 
Avil   (2012-03-06 19:44) [6]

Как работает VarType:

function VarType(const V: Variant): TVarType;
begin
 Result := TVarData(V).VType;
end;

Т.е. какой тип был при присвоении, то он и выводит.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.048 c
2-1393273093
Митяй2014
2014-02-25 00:18
2015.09.10
Как узнать путь к картинке в Image?


15-1412627403
Юрий
2014-10-07 00:30
2015.09.10
С днем рождения ! 7 октября 2014 вторник


4-1272049250
@!!ex
2010-04-23 23:00
2015.09.10
Как из service удалить куки для всех пользователей?


15-1417530390
MsGuns
2014-12-02 17:26
2015.09.10
Пейдж vs Блэкмор


15-1417594449
Jeer
2014-12-03 11:14
2015.09.10
Решил по быстрому





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский