![]() |
Файловые потоки, нужна помощь...
Мне нужно из таблицы, в которой есть BLOB поле, в котором записан RTF текст, положить данные в файл (*.doc, *.rtf). После долгих попыток что ли бо такое сделать, получилось следующее:
Код:
var FS: TFileStream; |
Ответ: Файловые потоки, нужна помощь...
Цитата:
|
Ответ: Файловые потоки, нужна помощь...
Цитата:
Код:
dm.ADOTable.First;Код:
{\rtf1\ansi\ansicpg1251\deff0\deflang1049{\fonttbl{\f0\fnil\fcharset204 MS Sans Serif;}{\f1\fswiss\fcharset0 Tahoma;}{\f2\fnil MS Sans Serif;}} |
Ответ: Файловые потоки, нужна помощь...
BlobStream := TADOBlobStream.Create(TBlobField(dm.ADOTable.Field ByName('RTFText')), bmRead);
BlobStream.Seek(0, soFromBeginning); FS.LoadFromStream(BlobStream); |
Ответ: Файловые потоки, нужна помощь...
Цитата:
Код:
FS:=TFileStream.Create( 'File.doc', fmCreate or fmOpenWrite);Если Вы используете визуальный компонент набора данных (TADODataSet или TADOuery), можно просто писать TBlobField(DataSet1.FieldByName('myblobdata')).Sav eToStream(FS); или DataSet1MyBlobData.SaveToStream(FS); Второй вариант пройдет, если поля набора данных созданы в списке (двойной щелчок по датасету - add all fields), и поле MyBlobData создано как BLOB. Далее. По поводу того, чтобы писать все файлы из данных в один: в случае RTF это невозможно, т.к. RTF - это не обычный текст, который можно дописывать друг за другом, а текст с тэгами, указывающими на признаки форматирования текста, и просто объединение не даст результат. Надо писать парсер RTF, имхо. Но в данной теме глубоко не копал, поэтому не претеную на абсолютизм :) |
Re: Файловые потоки, нужна помощь...
Пиши в текст а затем в DOC
|
| Текущее время: 20:02. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2025 NoWa.cc