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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> help to split text in richedit how ? 
:(
    Опции темы
huismori
  Дата 1.12.2010, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



i want to split text in richedit after every 500 characters, is it possible ?
PM MAIL   Вверх
muratboy31
  Дата 3.12.2010, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



i saw something like that on the net and i tried to find it again but i could find it... sorry !!!

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


Шустрый
*


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

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



it would be good if you could have found it again...
i also searched on the net but no luck...
what i want to do is;

split the text in richedit after every 500 or 1000 characters and save to the txt files...
i dont know if it is possible also !!!
PM MAIL   Вверх
huismori
Дата 3.12.2010, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



i found something but it doesnt really do what i want !!!
how can i work with this code !!!

Цитата

var
  before, after : string;
begin
  before := Memo0.Text;
  After := WrapText(before, 500);
  Memo1.Text:=After[0];
  Memo2.Text:=After[1];
  Memo3.Text:=After[2];
end;


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


Шустрый
*


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

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



ok i found something else... it is doing what i want but there is a small problem with it, it is splitting the character in word... how can i make it not to split if it is in the word and jump to next space to split !!!

Цитата

procedure TForm1.Button1Click(Sender: TObject);
var
  Source, Target, target2, target3 : string;
  begin
  Source := memo1.Text;
  Target := Copy(Source, 1, 500);
  target2 := Copy(Source, 501, 500);
  target3 := Copy(Source, 1001, 500);

  memo2.Text:=target;
  memo3.Text:=target2;
  memo4.Text:=target3;
end;


Это сообщение отредактировал(а) huismori - 3.12.2010, 18:03
PM MAIL   Вверх
huismori
Дата 8.12.2010, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



can anyone help me please ?
PM MAIL   Вверх
cat512
Дата 8.12.2010, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(huismori @ 8.12.2010,  10:26)
can anyone help me please ?

you can try this
Код

WrapText(RichEdit.Lines.text, sLineBreak, [#32,{need to add the code of tab}] , 500);




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


Шустрый
*


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

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



Цитата(cat512 @ 8.12.2010,  13:04)
Цитата(huismori @ 8.12.2010,  10:26)
can anyone help me please ?

you can try this
Код

WrapText(RichEdit.Lines.text, sLineBreak, [#32,{need to add the code of tab}] , 500);



what do you mean with ''the code of tab'' !!!
PM MAIL   Вверх
cat512
Дата 8.12.2010, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

what do you mean with ''the code of tab'' !!!

iif you need to split some text beginning at special character like gaps (#32), crlf(#13#10), tab character(i forget the number) and etc, then you must add the number of special character into that parameter
PM MAIL   Вверх
huismori
Дата 8.12.2010, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



what i want to do is to split the text in rich edit after every 500 characters and put every 500 character in different memo objects...
PM MAIL   Вверх
cat512
Дата 9.12.2010, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(huismori @ 8.12.2010,  22:24)
what i want to do is to split the text in rich edit after every 500 characters and put every 500 character in different memo objects...

It isn't difficult. 
Код

procedure TForm1.FormCreate(Sender: TObject);
const
  cDelimiter = '*#*';
var
  S: string;
  MatchPos: integer;
begin
  S := '11 11111 1111111 1 11111111 1111111';
  S := WrapText(s, cDelimiter, [' '], 10);
  repeat
    MatchPos := Pos(cDelimiter, S);
    ShowMessage(Copy(S, 1, Ifthen(MatchPos > 0,  MatchPos - 1, Length(s))));
    Delete(S, 1, Ifthen(MatchPos > 0, MatchPos + Length(cDelimiter) - 1, -1));
  until MatchPos <= 0;
end;

don't forget declare the "math" unit

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


Шустрый
*


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

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



thanks alot cat512
thats doing what i want... 1 more thing;
can i put splitted texts in memo objects or stringlists? not in message dialogs !!!
PM MAIL   Вверх
cat512
Дата 9.12.2010, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



yes you can. It is a sample I have showed you. Of course, you can improve it

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


Шустрый
*


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

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



here what i tried but it didnt really do it good !!! it giveas error if there is no data in to put in memo4... error is: List index out of bounds(4) 
what am i doing wrong ??? 

Код

const
  cDelimiter = '*#*';
var
  S: string;
  MatchPos, i: integer;
  table : TStringList;
begin
  table := TStringList.Create;
  S := '11 11111 1111111 1 11111';
  S := WrapText(s, cDelimiter, [' '], 10);
  repeat
    MatchPos := Pos(cDelimiter, S);
    table.Add(Copy(S, 1, Ifthen(MatchPos > 0,  MatchPos - 1, Length(s))));
    Delete(S, 1, Ifthen(MatchPos > 0, MatchPos + Length(cDelimiter) - 1, -1));
  until MatchPos <= 0;
    for i := 0 to table.Count-1 do
     memo1.Text:= (table[0]);
     memo2.Text:= (table[1]);
     memo3.Text:= (table[2]);
     memo4.Text:= (table[3]);
end;


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


Опытный
**


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

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



Who writes a cycle so???
you need to index the "table's" items by variable of cycle.
Код

    for i := 0 to table.Count-1 do
    case I of
      1: memo1.Text := Table[I];
      2: memo2.text := Table[I];
      3: memo3.text := ...
      4:{and so on};
    end;

In generally, it will be better never to use the stringlist object here. Why do you need a unnecessary variable?

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


Шустрый
*


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

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



i need to make limited lists for text and it is gonna be about 500 or 1000 characters and after i need to send these lists to user... so i thought it would b easier if i put them in memo objects... do u have better idea ?
PM MAIL   Вверх
cat512
Дата 9.12.2010, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



I understood what you need, but I need to specify some points.
How are you going to send a text for your users? I would like that you give me more details. 

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


Шустрый
*


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

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



thanks alot for all your helps cat512
i managed to it for the moment...

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


Шустрый
*


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

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



solved !!!

Это сообщение отредактировал(а) huismori - 14.12.2010, 17:47
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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