Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 2 richedits in 1 rtf file with text attributies ? 
:(
    Опции темы
huismori
Дата 24.12.2010, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 19.1.2010

Репутация: нет
Всего: нет



Stream and string together how ? i want to save 2 richedits contents to 1 rtf file with headers but with text attributies.

Код

procedure TForm1.SaveAsAccept(Sender: TObject);
const
NewLine=#13#10;
var
  ms: TMemoryStream;
  ms2: TMemoryStream;
  Filename: String = 'New';
begin
  ms := TMemoryStream.Create;
  ms2 := TMemoryStream.Create;
  Filename := SaveAs.Dialog.FileName;
  try
  sRichEdit2.Lines.SaveToStream(ms) ;
  ms.Seek(0, soFromBeginning) ;

  sRichEdit1.Lines.SaveToStream(ms2) ;
  ms2.Seek(0, soFromBeginning) ;

  sRichedit3.Lines:= 'Old Text :'+NewLine+ms+NewLine+NewLine+NewLine+'New Text :'+NewLine+ms2 ;
  sRichedit3.Lines.SaveToFile(SaveAs.Dialog.FileName);

  finally
  ms.Free;
  ms2.Free;
  end;
end;



this line gives error;
Код

  sRichedit3.Lines:= 'Old Text :'+NewLine+ms+NewLine+NewLine+NewLine+'New Text :'+NewLine+ms2 ;



Это сообщение отредактировал(а) huismori - 24.12.2010, 11:01
PM MAIL   Вверх
cyberstream
Дата 24.12.2010, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 7.9.2006

Репутация: нет
Всего: 4



Certainly, cause TStrings and TMemoryStream are not the same.

Merging 2 RTF files into a Richedit


--------------------
Не знаешь кого спросить? - Спроси google!
PM MAIL   Вверх
cat512
Дата 24.12.2010, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 438
Регистрация: 20.3.2007

Репутация: 7
Всего: 15



You try to assign a smple string to TStrings object. So you can't do it. Types of objects must be same.
You need to correct it to 
Код

sRichedit3.Lines.Text "= 'something';

and replace TMemoryStream to TStringStream

Это сообщение отредактировал(а) cat512 - 24.12.2010, 14:24
PM MAIL   Вверх
huismori
Дата 24.12.2010, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 19.1.2010

Репутация: нет
Всего: нет



ok but it would still give error because i would use string and stringstream together !!!

Цитата

var
  ms: TstringStream;
  ms2: TstringStream;
begin
  sRichedit3.Lines:= 'Old Text :'+NewLine+ms+NewLine+NewLine+NewLine+'New Text :'+NewLine+ms2 ;


PM MAIL   Вверх
cat512
Дата 24.12.2010, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 438
Регистрация: 20.3.2007

Репутация: 7
Всего: 15



can you turn on a bit your brain??? Do you read what writes you???
Код

  Lines.TEXT := ...+ms.datastring + ...


Это сообщение отредактировал(а) cat512 - 24.12.2010, 15:54
PM MAIL   Вверх
huismori
Дата 24.12.2010, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 19.1.2010

Репутация: нет
Всего: нет



sorry but it saves text without rtf coding !!!
if i try to view the saved file with ms word, it show attributies codes instaed of rtf formatted text !!!
for example;
Цитата

A
r
i
a
l
S
i
z
e
9
/
.
.
.

PM MAIL   Вверх
cat512
Дата 24.12.2010, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 438
Регистрация: 20.3.2007

Репутация: 7
Всего: 15



can u try to return TMemoryStream back and to do so
Код

  ...Lines.Text := ... + String(PChar(ms.memory)) + ...

PM MAIL   Вверх
huismori
Дата 24.12.2010, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 19.1.2010

Репутация: нет
Всего: нет



it doesnt save file...

Код

const
NewLine=#13#10;
var
  ms: TMemoryStream;
  ms2: TMemoryStream;
  Filename: String = 'New';

begin
  ms := TmemoryStream.Create;
  ms2 := TmemoryStream.Create;
  Filename := SaveAs.Dialog.FileName;
  try

  sRichEdit2.Lines.SaveToStream(ms) ;
  ms.Seek(0, soFromBeginning) ;

  sRichEdit1.Lines.SaveToStream(ms2) ;
  ms2.Seek(0, soFromBeginning) ;

  sRichedit3.lines.text:= 'Old Text :'+NewLine+ String(PChar(ms.memory))+NewLine+NewLine+NewLine+'New Text :'+NewLine+ String(PChar(ms2.memory)) ;
  sRichedit3.Lines.SaveToFile(SaveAs.Dialog.FileName);

  finally
    ms.Free;
    ms2.Free;
  end;


Это сообщение отредактировал(а) huismori - 24.12.2010, 18:25
PM MAIL   Вверх
cat512
Дата 24.12.2010, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 438
Регистрация: 20.3.2007

Репутация: 7
Всего: 15



I understood what is a problem.
Код

var
  M: TMemoryStream;
  S: string;
//  sRichEdit1, sRichEdit2, sRichEdit3: TRichEdit;
begin

  M := TMemoryStream.Create;
  try
    S := 'Old text: ' + DupeString(sLineBreak, 3);
    M.ReadBuffer(S, Length(S));
    sRichEdit2.Lines.SaveToStream(M) ;
    S := 'New text: ' + DupeString(sLineBreak, 3);
    M.ReadBuffer(S, Length(S));
    sRichEdit1.Lines.SaveToStream(M) ;
    M.Seek(0, soFromBeginning) ;

    sRichedit3.lines.LoadFromStream(M);
    sRichedit3.Lines.SaveToFile('MyFile.rtf');

  finally
    M.Free;
  end;

end;


StrUtils unit is needed

Это сообщение отредактировал(а) cat512 - 24.12.2010, 17:51
PM MAIL   Вверх
huismori
Дата 24.12.2010, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 19.1.2010

Репутация: нет
Всего: нет



user posted image

Код

procedure TForm1.SaveExecute(Sender: TObject);
var
  M: TMemoryStream;
  S: string;
  sRichEdit1, sRichEdit2, sRichEdit3: TbsskinRichEdit;     ////// i changed it as i use bussiness skin form richedit
begin
    M := TMemoryStream.Create;
 try
    S := 'Old text: ' + DupeString(sLineBreak, 3);
    M.ReadBuffer(S, Length(S));
    sRichEdit2.Lines.SaveToStream(M) ;
    S := 'New text: ' + DupeString(sLineBreak, 3);
    M.ReadBuffer(S, Length(S));
    sRichEdit1.Lines.SaveToStream(M) ;
    M.Seek(0, soFromBeginning) ;

    sRichedit3.lines.LoadFromStream(M);
    sRichedit3.Lines.SaveToFile('MyFile.rtf');

  finally
    M.Free;
  end;
end;


Это сообщение отредактировал(а) huismori - 24.12.2010, 18:34
PM MAIL   Вверх
cat512
Дата 25.12.2010, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 438
Регистрация: 20.3.2007

Репутация: 7
Всего: 15



I made a small mistake. You need to replace ReadBuffer to WriteBuffer
PM MAIL   Вверх
huismori
Дата 26.12.2010, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 19.1.2010

Репутация: нет
Всего: нет



this is how it saves the text in richedits !!!

Цитата

œİ}_Àõ__‰´G__{_{\rtf1\ansi\ansicpg1254\deff0\deflang1055{\fonttbl{\f0\fnil\fcharset162 Tahoma;}}
{\colortbl ;\red10\green36\blue106;}
\viewkind4\uc1\pard\cf1\f0\fs44 Hello everyone\par
}
_œİ}_Àõ__‰´G__{_{\rtf1\ansi\ansicpg1254\deff0\deflang1055{\fonttbl{\f0\fnil\fcharset162 Tahoma;}}
{\colortbl ;\red255\green0\blue0;}
\viewkind4\uc1\pard\cf1\f0\fs30 How are you ?\par
}
_



this is the code i use;

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  M: TMemoryStream;
  S: string;
 /// sRichEdit1, sRichEdit2, sRichEdit3: TRichEdit;
begin
    M := TMemoryStream.Create;
 try
    S := 'Old text: ' + DupeString(sLineBreak, 3);
    M.WriteBuffer(S, Length(S));
    sRichEdit2.Lines.SaveToStream(M) ;
    S := 'New text: ' + DupeString(sLineBreak, 3);
    M.WriteBuffer(S, Length(S));
    sRichEdit1.Lines.SaveToStream(M) ;
    M.Seek(0, soFromBeginning) ;

    sRichedit3.lines.LoadFromStream(M);
    sRichedit3.Lines.SaveToFile('MyFile.rtf');

  finally
    M.Free;
  end;
end;


why is it doing that !!!
PM MAIL   Вверх
Keeper89
Дата 26.12.2010, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 20
Всего: 58



Это какой то иностранный тролль-школьник? Ни одного вопроса, кроме "я наваял код А, почему он не работает как код Б", я пока не видел.
Еще и что пишут не читает.


--------------------
PM MAIL WWW   Вверх
huismori
Дата 26.12.2010, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 19.1.2010

Репутация: нет
Всего: нет



Цитата(Keeper89 @ 26.12.2010,  12:41)
Это какой то иностранный тролль-школьник? Ни одного вопроса, кроме "я наваял код А, почему он не работает как код Б", я пока не видел.
Еще и что пишут не читает.

i am sorry but i didnt understand it !!!
PM MAIL   Вверх
huismori
Дата 27.12.2010, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 19.1.2010

Репутация: нет
Всего: нет



this is how it saves the text in richedits !!!
Цитата

œİ}_Àõ__‰´G__{_{\rtf1\ansi\ansicpg1254\deff0\deflang1055{\fonttbl{\f0\fnil\fcharset162 Tahoma;}}
{\colortbl ;\red10\green36\blue106;}
\viewkind4\uc1\pard\cf1\f0\fs44 Hello everyone\par
}
_œİ}_Àõ__‰´G__{_{\rtf1\ansi\ansicpg1254\deff0\deflang1055{\fonttbl{\f0\fnil\fcharset162 Tahoma;}}
{\colortbl ;\red255\green0\blue0;}
\viewkind4\uc1\pard\cf1\f0\fs30 How are you ?\par
}
_



i attached the project file:



Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  2_richedit_1_rtf.rar 7,40 Kb
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0567 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.