Пытаюсь конвертировать строковую переменную в числовую. Что только не пробовал... StrToInt, ToNumber, ToInt...ничего не работает((( Помогите, пожалуйста, решить эту задачу, я в тупике.
begin
if [DMOrders.qryOrderGoods."OP_CODE"] = '1601'
then a := [edit1.text]
else a := 1;
incVar:= StrToInt(a)
end
Задача стоит следующая: пользователь вводит в текстовое поле данные(цифры), затем их нужно преобразовать в число для дальнейших математических операций... Наприм ввел текст 23, надо получить число 23.
и как обьявлена переменная а ? Если string то, видимо не: else a := 1;
а else a := '1';
и что вообще происходит, ошибка какая?)
Кстати, для обработки пользовательского ввода хорошо обернуть StrToIntDef, VarToStrDef да и вообще это полезные ф-ции. Альтернатива - используй try блок.
Если переменная не объявлена, то извольте иметь все плюсы и минусы вариантов. Всегда будьте готовы к чему-нибудь вроде 1 + 3 = 13. В принципе, не объявлять переменные - это грабли.
Да, действительно 2 + '2' = 4... кто бы мог подумать... похоже это выход.
Огромное спасибо!!! Очень выручили! Теперь ясно, почему разработчики не включили в описание функции вроде StrToInt.
Эту доку я не видел и не искал, так как имею fr_rus.doc, а там тока про FR. FastScript нужно дополнительно устанавливать к FR? Если да, то ясно почему у меня траблы с вызовом функций.
Комментарии
if [DMOrders.qryOrderGoods."OP_CODE"] = '1601'
then a := [edit1.text]
else a := 1;
incVar:= StrToInt(a)
end
Задача стоит следующая: пользователь вводит в текстовое поле данные(цифры), затем их нужно преобразовать в число для дальнейших математических операций... Наприм ввел текст 23, надо получить число 23.
else a := 1;
а
else a := '1';
и что вообще происходит, ошибка какая?)
Кстати, для обработки пользовательского ввода хорошо обернуть StrToIntDef, VarToStrDef да и вообще это полезные ф-ции. Альтернатива - используй try блок.
--
<span style='color:red'>А почему тогда сообщение в форуме FastReport 3?</span>
begin
n := 5;
s := '10';
p := n + s;
end
в результате p = 15
Огромное спасибо!!! Очень выручили! Теперь ясно, почему разработчики не включили в описание функции вроде StrToInt.
FastScript 1.7 Библиотека скриптов Руководство разработчика лежит:
http://fast-report.com/pbc_download/files/fs_ru.pdf там есть описание:
function VarToStr(v: Variant): String
Перевод variant в строку
function StrToInt(s: String): Integer
Перевод строки в целое
они обернуты с первых версий FS, а VarToStrDef и StrToIntDef оберни самостоятельно, например: И не забывай про Null, когда имеешь дело с вариантами 8-)