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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.10.2007, 15:55   #1  
by_HT is offline
by_HT
Участник
 
195 / 10 (1) +
Регистрация: 12.10.2007
Как реализовать добавление записи в файл через dataport? То есть не обновлял данные в файл, а добовлял их...
Старый 18.10.2007, 17:24   #2  
Cheb is offline
Cheb
Участник
Лучший по профессии 2017
 
138 / 13 (1) ++
Регистрация: 22.09.2002
Адрес: Ростов-на-Дону -> Москва
Нужно попробовать использовать переменную CurrFile, и при запуске датапорта открывать файл и перемещать указатель на конец файла.
Старый 19.10.2007, 06:53   #3  
by_HT is offline
by_HT
Участник
 
195 / 10 (1) +
Регистрация: 12.10.2007
а по подробней можно?????
Старый 19.10.2007, 08:04   #4  
Cheb is offline
Cheb
Участник
Лучший по профессии 2017
 
138 / 13 (1) ++
Регистрация: 22.09.2002
Адрес: Ростов-на-Дону -> Москва
[codebox]
OnPreDataport

IF EXISTS(CurrDataport.FILENAME) THEN BEGIN
CurrFile.OPEN(CurrDataport.FILENAME);
CurrFile.SEEK(CurrFile.LEN);
END;

[/codebox]
Старый 19.10.2007, 09:48   #5  
by_HT is offline
by_HT
Участник
 
195 / 10 (1) +
Регистрация: 12.10.2007
спасиб разобрался... =)
Как мне сделать так, чтобы текст вставлялся не в конец файла, а в начала?
Старый 19.10.2007, 15:07   #6  
Cheb is offline
Cheb
Участник
Лучший по профессии 2017
 
138 / 13 (1) ++
Регистрация: 22.09.2002
Адрес: Ростов-на-Дону -> Москва
Дописывать можно только в конец файла.
Чтобы было так, как Вы хотите, нужно записать новую информацию во временный файл, затем дописать всю информацию из существующего файла, удалить его, а временный файл переименовать в нужный.
Старый 24.10.2007, 16:00   #7  
by_HT is offline
by_HT
Участник
 
195 / 10 (1) +
Регистрация: 12.10.2007
ладно не будем извращаться...пусть будет как есть!
Старый 23.10.2009, 11:51   #8  
Lapunder is offline
Lapunder
Участник
 
40 / 10 (1) +
Регистрация: 24.04.2008
Цитата:
Сообщение от chebv Посмотреть сообщение
[codebox]
OnPreDataport

IF EXISTS(CurrDataport.FILENAME) THEN BEGIN
CurrFile.OPEN(CurrDataport.FILENAME);
CurrFile.SEEK(CurrFile.LEN);
END;

[/codebox]
спасибо - мне тоже пригодилось. но осталось одно НО. после того, как файл уже создан, я пытаюсь в него добавить записи и они, конечно, благополучно добавляются. но вот только сразу после последнего символа предыдущей записи. т.е. перехода на новую строку нет. не подскажете, что и куда надо добавить, чтоб это исправить?
Старый 06.11.2009, 12:55   #9  
Yakuza is offline
Yakuza
Участник
 
124 / 10 (1) +
Регистрация: 26.10.2004
Цитата:
Сообщение от Lapunder Посмотреть сообщение
Цитата:
Сообщение от chebv Посмотреть сообщение
[codebox]
OnPreDataport

IF EXISTS(CurrDataport.FILENAME) THEN BEGIN
CurrFile.OPEN(CurrDataport.FILENAME);
CurrFile.SEEK(CurrFile.LEN);
END;

[/codebox]
спасибо - мне тоже пригодилось. но осталось одно НО. после того, как файл уже создан, я пытаюсь в него добавить записи и они, конечно, благополучно добавляются. но вот только сразу после последнего символа предыдущей записи. т.е. перехода на новую строку нет. не подскажете, что и куда надо добавить, чтоб это исправить?
После установки указателя на последний символ дописываете:
Код:
CurrFile.WRITE(10);
Но проверьте после. У меня почему-то плюс к переводу строки указатель перемещался еще на четыре символа вперед, пришлось после этого добавить:
Код:
f := CurrFile.POS;
CurrFile.SEEK(f-4);
 


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

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

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