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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.01.2008, 10:41   #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);
s2:=Explode(buffer,2);
MESSAGE('Line No. %1 %2', i , s2); //ïîêàçàòü âòîðîå ïîëå
i := i + 1;
END;
f.CLOSE();
END;
END;


Explode(Buffer : Text[1024];Number : Integer) s2 : Text[1024]
FOR i:=1 TO Number DO BEGIN
s2:=COPYSTR(Buffer,1,STRPOS(Buffer,';')-1);
Buffer:=COPYSTR(Buffer,STRPOS(Buffer,';')+1);
END;

может неправильно открываю файл?
Старый 29.01.2008, 10:51   #2  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Несмотря на то, что в строке все время гарантированно есть необходимое число точек с запятой я бы обработал ситуацию, когда по каким-либо причинам точка с запятой не нашлась ... То есть взял бы под IF строку STRPOS(Buffer,';')
Старый 29.01.2008, 11:04   #3  
Blade85 is offline
Blade85
Участник
 
13 / 10 (1) +
Регистрация: 28.01.2008
Цитата:
Сообщение от romeo Посмотреть сообщение
Несмотря на то, что в строке все время гарантированно есть необходимое число точек с запятой я бы обработал ситуацию, когда по каким-либо причинам точка с запятой не нашлась ... То есть взял бы под IF строку STRPOS(Buffer,';')
а по конкретнее покажите такой код


FOR i:=1 TO Number DO BEGIN

s2:=COPYSTR(Buffer,1,STRPOS(Buffer,';')-1);
Buffer:=COPYSTR(Buffer,STRPOS(Buffer,';')+1);
END;


Цитата:
Сообщение от apanko Посмотреть сообщение
В функции Эксплоде. Поставьте флаг VAR=Да у переменной Buffer.

Или сделайте Буффер глобальным и вообще в функцию Эксплоде ее не передавайте.

А то буффер в эксплоде пустой. Можете проверить.
галочку в Var то поставил. все равно дает ошибку
 


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

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

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