AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.08.2007, 15:36   #1  
_tv4_ is offline
_tv4_
Участник
 
13 / 10 (1) +
Регистрация: 15.08.2007
Thumbs up
Делаю импорт даных из екселя через таблицу Excel Buffer. Большие числа импортируются в эту табличку с разделителем пробелом. Далее пытаюсь его удалить, пробовала:
str:=DELCHR(ExcelBuf."Cell Value as Text",'=',' ');
str:=FORMAT(ExcelBuf."Cell Value as Text",0,2);
не помогает

в чем прикол кто знает?

PS читала Преобразование Decimal в String но не помогло
Старый 15.08.2007, 15:59   #2  
kekki is offline
kekki
Участник
 
58 / 10 (1) +
Регистрация: 27.06.2005
Можно попробовать сразу в Excel Buffer писать значение без пробела, т.е. например,
Код:
ExcelBuffer."Cell Value as Text" := FORMAT(Amount,15,1)
мне помогает
Старый 15.08.2007, 16:25   #3  
_tv4_ is offline
_tv4_
Участник
 
13 / 10 (1) +
Регистрация: 15.08.2007
т.е. менять механизм в таблице Excel Buffer?

меня беспокоит почему стандартные функции не работают
Старый 15.08.2007, 16:36   #4  
Corleone is offline
Corleone
Участник
 
355 / 10 (1) +
Регистрация: 27.05.2004
Адрес: London
Цитата:
Сообщение от _tv4_ Посмотреть сообщение
т.е. менять механизм в таблице Excel Buffer?

меня беспокоит почему стандартные функции не работают
Там может быть не пробел а нечитаемый символ (скорее всего FFh).
Старый 15.08.2007, 16:53   #5  
_tv4_ is offline
_tv4_
Участник
 
13 / 10 (1) +
Регистрация: 15.08.2007
Цитата:
Сообщение от Gmc Посмотреть сообщение
Там может быть не пробел а нечитаемый символ (скорее всего FFh).
да. он. пробовала с символом 160 из аналогичной емой не прокатило, а с 255 прокатило.
спасибо
Старый 16.08.2007, 11:19   #6  
Jackal1 is offline
Jackal1
Участник
 
54 / 10 (1) +
Регистрация: 29.07.2005
Адрес: Киев
При експорте делаю так, и работает отлично
"Cell Value as Text" := DELCHR(FORMAT(ЧИСЛО),'=',' '));

Вместо
str:=DELCHR(ExcelBuf."Cell Value as Text",'=',' ');
Попробуй
str1 := ExcelBuf."Cell Value as Text";
str:=DELCHR(str1,'=',' ');
Старый 16.08.2007, 11:48   #7  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Достаточно изменить в региональных настройках символ разделителя разрядов и все будет ок.
__________________
Want to believe...
Старый 14.10.2008, 16:14   #8  
Alexez is offline
Alexez
Участник
 
2 / 10 (1) +
Регистрация: 03.06.2008
Я написал так

DelSpace(Item : Code[25]) ItemRes : Code[25]
FOR pos:=1 TO STRLEN(Item) DO
BEGIN
str:=COPYSTR(Item,pos,1);
IF str IN ['1','2','3','4','5','6','7','8','9','0'] THEN
ItemRes:=ItemRes+str;
END;
Старый 15.10.2008, 15:01   #9  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Вообще-то вызов DELCHR(string) удаляет пробелы без параметров. можно еще evaluate попробовать.
Старый 15.10.2008, 16:38   #10  
Control is offline
Control
Участник
Аватар для Control
 
15 / 11 (1) +
Регистрация: 29.01.2008
Прогоняй через неё.
Код:
DelSpace(LocText : Text[30]) Return : Text[30]
FOR step := 1 TO STRLEN (LocText) DO
BEGIN
   Chr := LocText[step];
   IF NOT(Chr IN [32, 255]) THEN Return := Return + FORMAT(LocText[step]);
END;
За это сообщение автора поблагодарили: mira (1).
Старый 06.03.2009, 19:29   #11  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
Цитата:
Сообщение от Control Посмотреть сообщение
Прогоняй через неё.
Код:
DelSpace(LocText : Text[30]) Return : Text[30]
FOR step := 1 TO STRLEN (LocText) DO
BEGIN
   Chr := LocText[step];
   IF NOT(Chr IN [32, 255]) THEN Return := Return + FORMAT(LocText[step]);
END;

спасибки огромное.. изменение региональных настроек и удаление пробелов с помощью функции DELCHR помогало почему то лишь на некоторых компьютерах.. а эта функция решила проблемы совершенно у всех
Старый 17.03.2009, 14:51   #12  
rruskih is offline
rruskih
Участник
Аватар для rruskih
 
12 / 10 (1) +
Регистрация: 12.03.2007
проще уж написать:


DelChar(LocText : Text[30]) Return : Text[30]
Chr := 32;
Return :=DELCHR(LocText,'=',FORMAT(Chr));
Chr := 255;
Return :=DELCHR(LocText,'=',FORMAT(Chr));
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:07.