Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Нужно сохранить RichEdit в Stream, произвести изменения и save   Найти похожие ветки 

 
dorik   (2010-03-18 12:59) [0]

Как правильно сохранить текст RichEdit в Stream (для последующего изменения) а потом сохранить это все в файл?


 
И. Павел ©   (2010-03-18 13:49) [1]

ИМХО нужно установить plaintext в true. Тогда в свойстве Text будет полное содержание rtf документа, и его можно писать куда угодно.


 
Плохиш ©   (2010-03-18 13:53) [2]


> dorik   (18.03.10 12:59)
>
> Как правильно сохранить текст RichEdit в Stream

Критерии "правильно" не озвучены.


 
Loginov Dmitry ©   (2010-03-18 22:17) [3]


> Как правильно сохранить текст RichEdit в Stream (для последующего
> изменения) а потом сохранить это все в файл?


RichEdit.СохранитьВПоток
Поток.СохранитьВФайл

Поток.ЗагрузитьИзФайла
RichEdit.ЗагрузитьИзПотока


ИМХО нужно установить plaintext в true.
По умолчанию все форматирование сохраняется, plaintext настроен правильно, менять не следует.


 
И. Павел ©   (2010-03-18 22:48) [4]


> RichEdit.СохранитьВПоток
> Поток.СохранитьВФайл
>
> Поток.ЗагрузитьИзФайла
> RichEdit.ЗагрузитьИзПотока


Забыли кое что: MyStream.Seek(0, soFromBeginning);
Думаю, в этом месте у автора и возникла сложность...


 
И. Павел ©   (2010-03-18 22:51) [5]


> Поток.СохранитьВФайл
>
> Поток.ЗагрузитьИзФайла

Этого не заметил. Так работать, наверное будет, ну тогда зачем поток?


 
И. Павел ©   (2010-03-18 23:03) [6]

Хотя нет, все же так:

RichEdit.СохранитьВПоток
Поток.СохранитьВФайл

Поток.ЗагрузитьИзФайла
MyStream.Seek(0, soFromBeginning);
RichEdit.ЗагрузитьИзПотока


 
Loginov Dmitry ©   (2010-03-18 23:35) [7]


> Так работать, наверное будет, ну тогда зачем поток?


ТЗ автора, однако :)


 
dorik   (2010-03-19 13:31) [8]

У меня вот так:


procedure TForm1.SaveBtnClick(Sender: TObject);
var
 Stream: TFileStream;
begin
 Stream := TFileStream.Create("note.txt", fmOpenWrite);
 Stream.Seek(0,soFromBeginning);
 NoteEdit.Lines.SaveToStream(Stream);
 Stream.Seek(0,soFromBeginning);
 EncryptStream(Stream,Stream.Size,"1234");
 Stream.Free;
end;

procedure TForm1.OpenBtnClick(Sender: TObject);
var
 Stream: TFileStream;
begin
 Stream := TFileStream.Create("note.txt", fmOpenRead);
 Stream.Seek(0,soFromBeginning);
 DecryptStream(Stream,Stream.Size,"1234");
 Stream.Seek(0,soFromBeginning);
 NoteEdit.Lines.LoadFromStream(Stream);
 Stream.Free;
end;


Оригинал:
Текст жирный
Текст курсивный
Текст подчеркнутый
Текст смешанный

Зашифровал:
ж]j§б+дI>p°lпфcpg1251\deff0\deflang1049{\fonttbl{\f0\fnil\fcharset204 Tahoma;}{\f1\fnil Tahoma;}}
\viewkind4\uc1\pard\f0\fs16\"d2\"e5\"ea\"f1\"f2 \"e6\"e8\"f0\"ed\"fb\"e9
\par \"d2\"e5\"ea\"f1\"f2 \"ea\"f3\"f0\"f1\"e8\"e2\"ed\"fb\"e9
\par \"d2\"e5\"ea\"f1\"f2 \"ef\"ee\"e4\"f7\"e5\"f0\"ea\"ed\"f3\"f2\"fb\"e9
\par \"d2\"e5\"ea\"f1\"f2 \"f1\"ec\"e5\"f8\"e0\"ed\"ed\"fb\"e9
\par \f1
\par }

Расшифровал:
ж]j§б+дI>p°lпфcpg1251\deff0\deflang1049{\fonttbl{\f0\fnil\fcharset204 Tahoma;}{\f1\fnil Tahoma;}}
\viewkind4\uc1\pard\f0\fs16\"d2\"e5\"ea\"f1\"f2 \"e6\"e8\"f0\"ed\"fb\"e9
\par \"d2\"e5\"ea\"f1\"f2 \"ea\"f3\"f0\"f1\"e8\"e2\"ed\"fb\"e9
\par \"d2\"e5\"ea\"f1\"f2 \"ef\"ee\"e4\"f7\"e5\"f0\"ea\"ed\"f3\"f2\"fb\"e9
\par \"d2\"e5\"ea\"f1\"f2 \"f1\"ec\"e5\"f8\"e0\"ed\"ed\"fb\"e9
\par \f1
\par }

Всегда в конечном результате шифрует только часть строки, при этом если сделать так:

var
 Stream: TFileStream;
begin
 Stream := TFileStream.Create("note.txt", fmOpenRead);
 DecryptStream(Stream,Stream.Size,"1234");
 Stream.Free;
//***
var
 Stream: TFileStream;
begin
 Stream := TFileStream.Create("note.txt", fmOpenRead);
 EncryptStream(Stream,Stream.Size,"1234");
 Stream.Free;


т.е. не грузить в ричедит, то шифрование проходит успешно.

Вот модуль шифрования которым я пользуюсь:
http://www.delphisources.ru/pages/faq/base/rc6_encryption.html



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.048 c
15-1275545924
Alx2
2010-06-03 10:18
2010.08.27
Задачка про максимальный столб из "черепах"


2-1270652923
Vincero
2010-04-07 19:08
2010.08.27
Отловить состояние клавиши [Shift] при нажатии на пункт PopupMenu


2-1270827005
User
2010-04-09 19:30
2010.08.27
Можно ли записывать в папку


15-1264203683
Petr V. Abramov
2010-01-23 02:41
2010.08.27
пятничный паровоз :)


3-1233731200
Mike Kouzmine
2009-02-04 10:06
2010.08.27
Не выполняется селект в хранимой процедуре