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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.01.2008, 11:38   #1  
Blade85 is offline
Blade85
Участник
 
13 / 10 (1) +
Регистрация: 28.01.2008
IF CommonDlgMgt.OpenFileEx('Îòêðûòèå ýëåêòðîííîé íàêëàäíîé','',TextFilter,1) THEN BEGIN
IF NOT FILE.EXISTS(CommonDlgMgt.GetPath + CommonDlgMgt.GetFileName) THEN
MESSAGE('Ôàéë ' + CommonDlgMgt.GetFileName + ' íå íàéäåí!')
ELSE BEGIN
f.TEXTMODE(TRUE);
f.OPEN(CommonDlgMgt.GetPath + CommonDlgMgt.GetFileName);
f.CREATEINSTREAM(StreamInObj);
i := 1;
WHILE NOT (StreamInObj.EOS()) DO
BEGIN
StreamInObj.READTEXT(buffer);
IF buffer='[Header]' THEN
BEGIN
s2:=Explode(buffer,2);
MESSAGE('Line No. %1 %2', i , s2); //ïîêàçàòü âòîðîå ïîëå
i := i + 1;
END;
END;
f.CLOSE();
END;
END;

Такое условие не принимает???
Я хочу так если Header то загружало в таблицу №1
Если Body то в таблицу №2
Старый 29.01.2008, 12:20   #2  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Попробуйте смотреть дебаггером.
Либо промежуточные результаты раскладывать по переменным, которые можно отслеживать дебаггером, либо выводить на экран мессаджами или конфирмами. Дебаггер - это инструмент отладки. Учитесь пользоваться им.
Старый 29.01.2008, 12:38   #3  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Формат файла считаем таким:
Цитата:
[Header]
‡ Є §;19;Џђ.‡-00077;9;?‚ЂЌЋ‚ Ђ.;
‡ Є §;29;Џђ.‡-00077;10;?‚ЂЌЋ‚ Ђ.;
[Body]
‡ Є §;39;Џђ.‡-00077;11;?‚ЂЌЋ‚ Ђ.;
‡ Є §;49;Џђ.‡-00077;12;?‚ЂЌЋ‚ Ђ.;
Тогда делаем так:
Код:
f.TEXTMODE(TRUE);
f.OPEN(CommonDlgMgt.GetPath + CommonDlgMgt.GetFileName);
f.CREATEINSTREAM(StreamInObj);
i := 0;
gheader:=FALSE;  //новая переменная
WHILE NOT (StreamInObj.EOS()) DO BEGIN //читаем построчно.
StreamInObj.READTEXT(buffer);
i+= 1;
CASE buffer OF  // в зависимости от значения переменной buffer делаем следующие действия
'[Header]'::gheader:=TRUE;  //если хидер, то присваиваем переменной gheader значение Да

'[Body]'::gheader:=FALSE  //если началась секция боди, то присваиваем переменной gheader значение Нет

ELSE  //во всех остальных случаях (т.е. читаются строки с данными) производится вставка в таблицы
  IF gheader THEN BEGIN  //в заголовок
	//инициализация новой записи
	rDocHeader.POLE1:=Explode(buffer,1);
	rDocHeader.POLE2:=Explode(buffer,2);
	...
	rDocHeader.POLEN:=Explode(buffer,N);
	//вставка записи в таблицу
  END ELSE BEGIN  //в табличную часть
	//инициализация новой записи
	rDocLine.POLE1:=Explode(buffer,1);
	rDocLine.POLE2:=Explode(buffer,2);
	...
	rDocLine.POLEM:=Explode(buffer,M);
	//вставка записи в таблицу
  END;
END;
f.CLOSE();
Старый 29.01.2008, 13:02   #4  
Blade85 is offline
Blade85
Участник
 
13 / 10 (1) +
Регистрация: 28.01.2008
CASE buffer OF // в зависимости от значения переменной buffer делаем следующие действия
'[Header]'::gheader:=TRUE; //если хидер, то присваиваем переменной gheader значение Да

'[Body]'::gheader:=FALSE //если началась секция боди, то присваиваем переменной gheader значение Нет

вот здесь делает ошибку что то тут не так.
Старый 29.01.2008, 13:05   #5  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Код:
CASE buffer OF
  '[Header]' : gheader := TRUE;
  '[Body]' : gheader := FALSE;
  ELSE BEGIN
  END;
END;
Старый 29.01.2008, 13:07   #6  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Цитата:
Сообщение от Blade85 Посмотреть сообщение
CASE buffer OF // в зависимости от значения переменной buffer делаем следующие действия
'[Header]'::gheader:=TRUE; //если хидер, то присваиваем переменной gheader значение Да

'[Body]'::gheader:=FALSE //если началась секция боди, то присваиваем переменной gheader значение Нет

вот здесь делает ошибку что то тут не так.

Одно двоеточие, а не два.
Он же так и пишет.
Старый 30.01.2008, 03:21   #7  
Blade85 is offline
Blade85
Участник
 
13 / 10 (1) +
Регистрация: 28.01.2008
Спаcибо тебе apanko !!!!! Очень помог!!!
 


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

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

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