Страница 1 из 1
Как программно дописать в MEMO поле?
Добавлено: 26 фев 2016, 11:41
win
Галактика 8,1
Oracle 11
Кто знает как дописать данные в MEMO поле?
для 1 записи работает, для 2 и более уже нет:
Код: Выделить всё
ExportMemoToFile(Docinfo1.TextData, 'file.$$$', false); // экспортируем данные
ImportFileToMemo(Docinfo.TextData, ''file.$$$', true); // импортируем данные
SetMemoPrefix(tnDocinfo, GetMemoPrefix(tnDocinfo1)); // пишем тип данных
DeleteFile('file.$$$');
update current Docinfo;
в идеале сделать бы так, но ругается на типы данных
Код: Выделить всё
Docinfo.TextData:= Docinfo.TextData + Docinfo1.TextData;
но работает только так (опять же только для 1 записи)
Re: Как программно дописать в MEMO поле?
Добавлено: 26 фев 2016, 12:25
m0p3e
Проверил с текстом - работает.
Код: Выделить всё
ImportFileToMemo ( DocInfo.TextData, 'C:\TEMP\memo1.txt', false );
ImportFileToMemo ( DocInfo.TextData, 'C:\TEMP\memo2.txt', true );
SetMemoPrefix ( tnDocInfo, 'txt' );
Update Current DocInfo;
В memo тексты обоих файлов.
Re: Как программно дописать в MEMO поле?
Добавлено: 26 фев 2016, 12:48
win
Если в DocInfo.TextData лежит 5 файлов разного типа, и нужно из нескольких DocInfo.TextData перелить всю инфу в другое memo поле?
Если бы ExportMemoToFile(Docinfo1.TextData, 'file.$$$', false) - сохранял 5 файлов, так сохраняет 1 в формате AZM
Re: Как программно дописать в MEMO поле?
Добавлено: 26 фев 2016, 13:38
edward_K
Код: Выделить всё
File FMemo;
.....
if FMemo.OpenMemo(DocInfo.TEXTDATA)
{
FMemo.Seek(0);
while not FMemo.EOF
{
FMemo.Readln(s1);
}
}
То есть можно работать как с обычным файлом(запись по writeLn + update current). + недавно появились функции по работе с частями - почитайте в новой доке vipprogr.chm и вроде здесь месяц назад чего то проскакивало. В теории можно и функциями READ и write пройтись если файл не текстовый.
Re: Как программно дописать в MEMO поле?
Добавлено: 26 фев 2016, 17:44
m0p3e
В vipprog к 9.1 появилось описание функций: *PartMemo*. Видимо они и нужны. VIP 5.5.20.
Re: Как программно дописать в MEMO поле?
Добавлено: 21 июл 2016, 22:41
edward_K
В общем тоже столкнулся с проблемой заливки нескольких частей.
Прочитав внимательно документацию к ImportFileToMemo(раза с 5) увидел следующее
Если функция добавляет файл с расширением из более, чем из трех символов в мемо-поле, не имеющее данных, создается многотомный архив
то есть сделав вот так
Код: Выделить всё
file_opis:=ww_dir+'\opis.docx'
if fileExist(file_opis) DeleteFile(file_opis)
Logstrtofile(file_opis,'Импорт из файла '+ww_file)
Logstrtofile(file_opis,_DateTimeToStr(_CurDateTime,'YYYY-MM-DD HH:NN:SS' ) )
ClearMemoField(Appendix.Contents);
ImportFileToMemo(Appendix.Contents,file_opis,true)
update current Appendix;
ImportFileToMemo(Appendix.Contents, .... ,true)
update current Appendix;
получил таки многотомный архив. Ну а по экспорту смотрим GetPartMemoCount, ExportPartMemoToFile + пример в раздале
Справка: Работа с БД и SQL > Функции для работы с БД > Функции и методы для работы с мемо-полями > Примеры использования функций и методов для работы с мемо-полями >