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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разбивка строки 
V
    Опции темы
Serious2008
Дата 23.2.2013, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здравствуйте, помогите пожалуйста строчками кода, я не придумал как это сделать. Чтобы например если пришла вот такая строка
New message [[shifr]] sends
То чтобы как-нибудь выдирать чисто [[shifr]] и его можно было изменить. Но с учётом того, что таких может быть много слов которые в [[mess]] таких скобках

Код

var innn,dellstart,innn_osnovnoe, dell_end:integer;
var str,edit_string:string;
begin
  while(Pos(edt2.Text, edt1.Text) > 0) do
begin
  dellstart:=pos(edt2.Text, edt1.Text);
  dell_end:=Pos(Edit1.Text, edt1.Text);
  edt3.Text:=IntToStr(dellstart);
  Edit2.Text:=IntToStr(dell_end);
  innn_osnovnoe:= dell_end -  dellstart - length(Edit1.Text);
  innn:= dell_end -  dellstart+length(Edit1.Text);
  edit_string := copy (edt1.Text, dellstart+length(edt2.Text), innn_osnovnoe);
  Edit3.Text:=Edit3.Text+' - '+edit_string;
  str:=edt1.Text;
  Delete(str, dellstart, innn);
  insert(edit_string,str,dellstart);
  edt1.Text:=str; 
end;


Это сообщение отредактировал(а) Serious2008 - 23.2.2013, 14:31
PM MAIL   Вверх
DarkProg
Дата 23.2.2013, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


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

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



Ставите цикл while, с условие pos('[[', somestr)>0, если так, то ищите позицию ']]' и используйте функцию copy для того чтобы вытащить всё что между скобками.


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

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


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Не буду снова писать свою функцию getwordcount, ищи её по форуму.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Serious2008
Дата 23.2.2013, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



У меня получилось но грубо, вот так

Код

var innn,dellstart,innn_osnovnoe, dell_end:integer;
var str,edit_string:string;
begin
  while(Pos(edt2.Text, edt1.Text) > 0) do
begin
  dellstart:=pos(edt2.Text, edt1.Text);
  dell_end:=Pos(Edit1.Text, edt1.Text);
  edt3.Text:=IntToStr(dellstart);
  Edit2.Text:=IntToStr(dell_end);
  innn_osnovnoe:= dell_end -  dellstart - length(Edit1.Text);
  innn:= dell_end -  dellstart+length(Edit1.Text);
  edit_string := copy (edt1.Text, dellstart+length(edt2.Text), innn_osnovnoe);
  Edit3.Text:=Edit3.Text+' - '+edit_string;
  str:=edt1.Text;
  Delete(str, dellstart, innn);
  insert(edit_string,str,dellstart);
  edt1.Text:=str; 
end;

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


Законченный романтик
***


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

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



Цитата(Serious2008 @  23.2.2013,  14:30 Найти цитируемый пост)
У меня получилось но грубо, вот так

Ну судя по вашему стартовому вопросу, мне кажется, главное, что получилось, а то что решение угловатое, ничего, как дорастёте, так и перепишите smile

Это сообщение отредактировал(а) DarkProg - 23.2.2013, 15:29


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
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.0419 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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