Текущий архив: 2007.02.11;
Скачать: CL | DM;
ВнизЧисло? Найти похожие ветки
← →
Officeman © (2007-01-25 08:00) [0]Как програмно сделать простую проверку?
т.з.
Импортирую данные из файла Excel таблиц "example.xls"
Два поля: Наименование товара, Цена
При чтении значений поля ЦЕНА.
необходимо проверять через тип значения
Если Число(x)=true Тогда
//Делаем его целым (десятичные 0,5 округляем до 1 )
Иначе пропускаем
пробовал так
STE := StrToIntDef(WorkSheet.Cells[x,2],0);
STR := IntToStr(STE);
но если попадается ТЕКСТ с поле ЦЕНА (например: #ЗНАЧ! или другое)
то цикл прерывается с ОШИБКОЙ "valid type".
← →
Elen © (2007-01-25 08:48) [1]
> STE := StrToIntDef(WorkSheet.Cells[x,2],0);
Попробуйif TryStrToInt(WorkSheet.Cells[x,2],ste) then STR := IntToStr(STE);
← →
Officeman © (2007-01-25 09:17) [2]2Elen,
не работает.
при встрече текста в поле цена. вылетает с ошибкой
← →
Alx2 © (2007-01-25 09:32) [3]>Если Число(x)=true Тогда
Честно говоря, раздражает подобное. А-ля
- Скажите, утверждение "соль есть в вашем магазине" равно истине?
А по вопросу - что если обернуть конвертирование в try ... except?
← →
iXT © (2007-01-25 09:35) [4]Что есть STE?
← →
Officeman © (2007-01-25 09:40) [5]2Alx2, так тоже не работает
2iXT, StrToIntDef неужели ни о чем не говорит?
← →
Elen © (2007-01-25 09:41) [6]
> Officeman
Могу ещеVal
посоветовать или действительно как сказал Alx2try...Except
Или еще попробуй так :STE := StrToIntDef(VarToStr(WorkSheet.Cells[x,2]),0);
STR := IntToStr(STE);
Ибо по-моему Cells имеет тип OleVariant.
← →
Alx2 © (2007-01-25 09:43) [7]>Officeman © (25.01.07 09:40)
Может, просто из-под среды выбивает с включенным Stop on Delphi exceptions?
← →
Officeman © (2007-01-25 10:21) [8]2Elen, это всё пробовал. не работает.
пробовал даже так:
STR1:=VarToStr(WorkSheet.Cells[x,2]);
a:=true;
For i:=1 to Length(STR1) do begin
If not ((STR1[i]) in (["0".."9","."])) then
begin
a:=false;
end
end;
if a then begin Memo4.Lines.Add(WorkSheet.Cells[x,2]) end;
так же вылетает с ошибкой при встрече ТЕКСТ в поле ЦЕНА
контент ошибки: "invalid variant type convertion"
какаето мелочь. немогу догнать почему так.
← →
Elen © (2007-01-25 10:34) [9]
> так же вылетает с ошибкой при встрече ТЕКСТ в поле ЦЕНА
Попробуй Try...Except... End. Он не должен дать ошибку при запуске проги не из под Делфи. Запусти Экзешник отдельно (см. [7])
← →
Elen © (2007-01-25 10:36) [10]
> Officeman
Да еще может попробуй :STE := StrToInt(VarToStrDef(WorkSheet.Cells[x,2],0));
STR := IntToStr(STE);
← →
iXT © (2007-01-25 10:50) [11]Чудес не бывает. Смотри драйвер hands.sys
← →
Elen © (2007-01-25 10:52) [12]
> Смотри драйвер hands.sys
И что в нем?
← →
iXT © (2007-01-25 10:55) [13]
> И что в нем?
У каждого свое :)
← →
Elen © (2007-01-25 11:03) [14]Удалено модератором
← →
Плохиш © (2007-01-25 11:12) [15]
> Естъ такой Чувство Юмор, Йа?
Это не "Чувство Юмор", это один из драйверов, которые ответственны за то, что некто вместо изучения основ начинает методом тыка подставлять разные функции в код в надежде, что всё заработает. Ещё рекомендую проверить драйвер head.drv...
← →
Officeman © (2007-01-25 12:13) [16]Удалено модератором
Примечание: Создание пустых сообщений
← →
Officeman © (2007-01-25 12:57) [17]Удалено модератором
← →
Darvin © (2007-01-25 15:01) [18]try
Value := StrToFloat(St);
except
end;
И не забудь снять галочку в настройках дебаггера: Stop on Delphi exceptions, иначе все равно будет вылетать при работе в среде.
Страницы: 1 вся ветка
Текущий архив: 2007.02.11;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.059 c