|
![]() |
#1 |
Участник
|
Вот имеется следующий код, который проходится по записям с BLOB-полями и который должен по идее дописывать в файл содержимое очередного BLOB-поля.
Код: bigfilename := 'c:\Temp\test10.rtf'; IF EXISTS(bigfilename) THEN ERASE(bigfilename); BigFile.WRITEMODE(TRUE); BigFile.TEXTMODE(TRUE); BigFile.CREATE(bigfilename); BigFile.OPEN(bigfilename); IF Archiv.FINDSET THEN BEGIN REPEAT // begin writing of Navision-Text BigFile.SEEK(Position); BigFile.WRITE(Archiv.Description); Position := BigFile.POS; // end writing of Navision-Text Archiv.CALCFIELDS(Attachment); IF Archiv.Attachment.HASVALUE THEN BEGIN Archiv.Attachment.CREATEINSTREAM(InStreamBLOB); // begin writing of .rtf file from BLOB REPEAT InStreamBLOB.READTEXT(CurrentLine); BigFile.SEEK(Position); BigFile.WRITE(CurrentLine); Position := BigFile.POS; UNTIL InStreamBLOB.EOS; // end writing of .rtf file from BLOB END; UNTIL Archiv.NEXT = 0; END; Проблема: содержимое BLOB'a представляется в виде текста обрамлённым всей форматирующей абракадаброй в открытом тексте в несколько сот строк (color,fonts, Тimes New Roman... ) Код: {\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1031\deflangfe1031\themelang1031\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset1\fprq2{\*\panose 02040503050406030204}Cambria Math;} {\f37\fbidi \fswiss\fcharset0\fprq2{\*\ Если писать в файл с TEXTMODE(FALSE) то дело ещё хуже, форматирование представляется квадратиками. Если выполнять только код для записи BLOB'ов, то записывается в файл почему-то только BLOB самой первой записи из таблицы, НО отображается в файле корректно. Кто знает, в чём проблема? |
|