Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизНужно сохранить 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.056 c