Главная страница
    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.48 MB
Время: 0.059 c
15-1169228956
vrem
2007-01-19 20:49
2007.02.11
Есть ли у Вас проблемы с головой?


15-1169127478
Александр Иванов
2007-01-18 16:37
2007.02.11
Чистосердечное признание уменьшает вину, или ламер ищет работу :)


2-1169609787
exolon
2007-01-24 06:36
2007.02.11
Помогите укротить типизированный файл.


2-1168617556
compiller
2007-01-12 18:59
2007.02.11
Указатели


3-1164090508
Ein
2006-11-21 09:28
2007.02.11
Как просмотреть содержимое поля OLE в базе данных





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