Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получение строки из Ворда [D5, Win95/98]


Olivka ©   (2002-04-20 19:09:00) 

В одну ячейку таблицы - вставляю формулу суммы
olevariant(FWordApp).ActiveDocument.Tables.Item(TableNumber).Cell(Row,Column).Range.Select;
olevariant(FWordApp).Selection.InsertFormula(formula,"0,00");
- сумма вышестоящих ячеек, все работает класно

Потом хочу получить это значение в переменную - Real, для этого:

text:=olevariant(fwordapp).ActiveDocument.tables.item(TableNumber).cell(Row,Column).range.Text;

это в переменную типа string - тоже вроде делается.
в переменную text попадает строка типа "1,98#D#F"(не помню точно символы), я так понимаю - это всего лишь признаки конца строки или ячейки.

Мне нужно получить 1,98 и я хочу сделать

val(text,realValue,code);

передается только первая цифра числа, например, из 1,98 получается RealValue=1, при этом code=2, т.е. запинается на запятой.
Но в ворде формула понимает у меня только запятую(иначе не суммирует), а не точку. Но замена на точку ничего не решает, code становится равным уже 5, но в RealValue попадает все равно первая цифра!
Я думала - может это и не запятая вовсе, но pos(text,",")=2. Я ничего не понимаю! Щас выйду из себя! как мне получить это число?


Olivka   (2002-04-20 22:43:00) [1]

Я ошиблась в вопросе - pos(text,",")=0, как и #
я могу взять часть ээтой строки - 4 цифры первые и тогда StrToFloat работает, но почему позиция запятой, точки или решетки в этой строке равны 0? странно.


Olivka   (2002-04-20 22:13:00) [2]

не получается, потому что строка в этом случае обязана быть числом, а у меня вместо числа
"0,12"#$D#7 - проверила - вот такого типа.


drpass   (2002-04-20 20:27:00) [3]

В русской винде запятая используется для разделения дробной и целой части, и Word ее использует. Древняя фукнция val, будучи англоязычным творением, понимает только точку. Возьми функцию StrToFloat вместо val, которая пользуется установками винды, и забудь об этой проблеме.


Наверх

Титульная страница Поиск, карта сайта Написать письмо