Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.09.10;
Скачать: CL | DM;

Вниз

Как работает функция 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;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.033 c
15-1418637143
alexdn
2014-12-15 12:52
2015.09.10
Альфа канал в php


15-1413985851
Ламот
2014-10-22 17:50
2015.09.10
Как корректно скопировать /dev/mtd0 в образ и обратно (NAND)?


15-1422346556
кгшзх
2015-01-27 11:15
2015.09.10
чокак там в mssql


15-1420406760
Кто б сомневался
2015-01-05 00:26
2015.09.10
Чтобы Delphi IDE при старте открывал последние открытые юниты


15-1421133339
junglecat
2015-01-13 10:15
2015.09.10
Знатокам ноутбуков Acer





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский