:: Архив конференции по VFP до 2005 года
Тип переменной
Centory
Автор

Сообщений: 88
Откуда: г. Зеленоград
Дата регистрации: 20.08.2004
Как узнать сабж?
Да знаю, есть TYPE(), но интересуют подробности (как то длина, количество знаков после запятой и тд.)
TYPE() для этого дела не подходит.
Ratings: 0 negative/0 positive
Re: Тип переменной
Петров Андрей

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
m.x=10.001
m.str=ALLTRIM(str(m.x,20,10))
do while substr(m.str,len(m.str))='0'
m.str=substr(m.str,1,len(m.str)-1)
enddo
m.dec=len(m.str)-at('.',m.str)
m.l=at('.',m.str)-1
m.l=IIF(m.l=-1,0,m.l)
? 'Decimals=',m.dec
? 'Length =',m.L

Что то вроде того...

А я использую не Type а VarType



Отредактировано (16.02.05 17:52)


------------------
PS Недочитал тему до конца...
Ratings: 0 negative/0 positive
Re: Тип переменной
Centory
Автор

Сообщений: 88
Откуда: г. Зеленоград
Дата регистрации: 20.08.2004

О vartype я не знал А зря, судя по всему она работает побыстрей чем type().
Но не суть важно, она дает только тип переменной, а надо больше.

А хотелось бы подробней о переменной, как то например дает afields, но он только для таблиц...
Если использовать чтото типа предложенного цикла - слишко замароченно будет.
Ratings: 0 negative/0 positive
Re: Тип переменной
JS

Сообщений: 12264
Откуда: Эстония
Дата регистрации: 04.09.2000
Вопрос - для какой цели?




------------------
Knowledge is better than ignorance!
Website: juri.foxhelp.eu
Ratings: 0 negative/0 positive
Re: Тип переменной
Centory
Автор

Сообщений: 88
Откуда: г. Зеленоград
Дата регистрации: 20.08.2004
Да нужно это под разбор отчетов, система старая..... Нам приходят листы в формате excel, а с нашей стороны они автоматом переделываются в dbf и там разбираются. А приходят они порой КРИВЫЕ (( и сохраняются автоматически тоже криво (то столбец даты в виде текста, то цифры пишутся как символы и тд).

Вот и думаю, как определить тип - можно конечно через дополнительную базу при сохранении и afields по ней, но хотца без этого....
Ratings: 0 negative/0 positive
Re: Тип переменной
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Centory!

Дело в том, что в фоксе информация о "размерности" переменной носит так
сказать "неосновной" характер- например переменная может хранить
значение 123.456, и в то-же время иметь внутренний признак "N(5,1)".
Достать его из самого фокса проблематично - лучше наверное сделать fll - там
это делается элементарно - т.к. все "атрибуты" переменной видны явно.
P.S. Какое отношение "типоразмер" фоксовой переменной имеет к "кривому
документу Excel" - для меня большая загадка - тебе надо с Excel разбираться
а не с фоксом! Там определять (и возможно править как-то) типы и размеры
полей.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Тип переменной
Centory
Автор

Сообщений: 88
Откуда: г. Зеленоград
Дата регистрации: 20.08.2004
А можно гденить глянуть пример с fll?

А по поводу екселя - вот для этого мне и нужно такой фокус провернуть, что не править его переодически.....
Ratings: 0 negative/0 positive
Re: Тип переменной
Петров Андрей

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
2 Centory

У меня точно такая же задача. Те импорт данных из Excel таблиц. Присылают счета фактуры в каком угодно виде вместо цифр буквы и тд. Самую большую сложность вызывало найти положение начала номенклатуры на странице... Но это для большинства случаев решить удалось (пока).

Но преобразование данных (тут Игорь не прав насчет при чем тут VFP) естествнно идет перед записью данных (у меня на MsSQL базу) Так вот. Импорт делаю следующим образом. Считаю номенклатуру и кидаю ее массивом в массив VFP. А дальше импортирую из него внутри VFP. Скорость реально больше... Теперь насчет типов переменных. Например в сч.фак. есть поле - количество. Его формат заранее не определен. Те возможны варианты
1) Число с неизвестным количеством знаков. (возможен тип Currency)
2) Строка (в котрой тоже хранится число)
3) Вообще может не быть (и такое бывает )

Определяю количество знаков через .cells(m.x,m.y).numberformat в пункте 1 иначе ставлю 3. Далее если имеем строку переводим ее в число используя Round(m.x,m.dec). Со столбцами в которых денежные суммы проще там всегда 2 знака...

Если что могу привести свой код...




------------------
PS Недочитал тему до конца...
Ratings: 0 negative/0 positive
Re: Тип переменной
Centory
Автор

Сообщений: 88
Откуда: г. Зеленоград
Дата регистрации: 20.08.2004
2 Петров Андрей:

Такаяже фигня. Благо кое какие столбцы так сказать не плавающие а фиксированные. А вообще 30% гемороя удалось снять через transform, она возвращает текстовую строку, какой бы примитив ей не сунули на вход..... А дальше evoalute, она переводит сивмольное представление числа в правильное цифровое.....
Есть конечно неувязачка при денежном представлении, оно можжет быть как и '123.10' так и 123.1 и просто 123. Сделал преобразование в смом екселе в тип столбца числовой - вроде помогло..... Но геморой все равно есть......
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 8 (Гостей: 8)

© 2000-2024 Fox Club 
Яндекс.Метрика