Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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 посоветовать или действительно как сказал Alx2 try...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.51 MB
Время: 0.034 c
2-1169571641
*Ray*
2007-01-23 20:00
2007.02.11
Модификация данных


2-1169474414
Mishenka
2007-01-22 17:00
2007.02.11
Как отловить событие наведения и увода указателя мыши с формы?


6-1157832233
Lex Luthor
2006-09-10 00:03
2007.02.11
Загрузка контактов в TICQ Client e


2-1169635361
Kotofeich
2007-01-24 13:42
2007.02.11
Как пользоваться lib библиотекой


15-1169103057
SerJaNT
2007-01-18 09:50
2007.02.11
И опять Виста...