Загрузка нескольких RTF файлов в RichEditDelphi , Компоненты и Классы , TMemo и TRichEditЗагрузка нескольких RTF файлов в RichEditАвтор: McAndrews
//Кидаем на форму RichEdit1, Button1, OpenDialog1 //и по клику кнопки создаём следующую процедуру: procedure TForm1.Button1Click(Sender: TObject); var i, nFiles: integer; FileNames, UnitedText, Separator, Tmp: string; TextStream: TStringStream; begin TextStream := TStringStream.Create(''); Separator := '\par \par \par '; // это разеделитель между выводимыми // файлами, в данном случае - 3 параграфа UnitedText := ''; OpenDialog1.Options := OpenDialog1.Options // что бы можно было выбрать несколько + [ofAllowMultiSelect]; // файлов RichEdit1.MaxLength := $7FFFFFF0; // предусмотрительно увеличиваем максимальный // объём загружаемых данных в RichEdit1 try // а вдруг что.. if OpenDialog1.Execute then begin nFiles := OpenDialog1.Files.count - 1; for i := 0 to nFiles do begin FileNames := OpenDialog1.Files.Strings[i]; RichEdit1.Lines.LoadFromFile(FileNames); // открываем каждый файл поочереди // в RichEdit1 RichEdit1.Lines.SaveToStream(TextStream); // и записываем данные уже от туда в // поток TextStream, Tmp := TextStream.DataString; // а из потока во временную // переменную Tmp типа String, TextStream.Position := 0; // ставим указатель в потоке на 0, if i = 0 then // проверяем - является ли данный Tmp := copy(Tmp, 0, length(Tmp) - 5) // файл первый, последним, или else if i = nFiles then // или между ними, в зависимости Tmp := Separator + copy(Tmp, 2, length(Tmp)) // от этого удаляем управляющие else // символы начала или окончания Tmp := Separator + copy(Tmp, 2, length(Tmp) - 5); // RTF-файла и всталяем разделитель. // дело в том, что каждый RTF-файл // начинаетcz c символа '{' и заканчивается '}'. UnitedText := UnitedText + Tmp; // записываем всё в переменную UnitedText end; TextStream.WriteString(UnitedText); // помещаем уже объеденённый текст в поток TextStream.Position := 0; // ставим указатель на 0 RichEdit1.Lines.LoadFromStream(TextStream); // и записываем потом в RichEdit1 end; finally TextStream.Free; end; end; Вот перевод текста на русский язык: Инициализация
Форма ( Процедура Button1Click
Эта процедура вызывается, когда кнопка нажата. Она выполняет следующие задачи:
1. Создает объект Загрузка нескольких файлов RTF
Программа использует компонент Конкатенация файлов
Модифицированные строки Загрузка конкатенированного текста в RichEdit1
Наконец, программа загружает конкатенированный текст ( Очистка
Объект В статье описана процедура загрузки нескольких RTF-файлов в компонент RichEdit, при этом файлы объединяются с помощью разделителя. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: TMemo и TRichEdit ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |