Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2013, 17:38   #1
develsnik
Форумчанин
 
Регистрация: 21.02.2013
Сообщений: 105
По умолчанию Скопировать из мемо текст

Добрый день!)
Вот у меня такой вопрос:
Есть memo
В нем есть текст и мне надо скопировать только часть ,начиная от такого то слова и заканчивая таким то.
Как бы это сделать?)
Заранее спасибо)
develsnik вне форума Ответить с цитированием
Старый 07.03.2013, 18:41   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

Функция Copy.
Человек_Борща вне форума Ответить с цитированием
Старый 07.03.2013, 18:43   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

PosEx для поиска слов в Memo.Text, ну и Copy как Борщ сказал
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.03.2013, 18:55   #4
develsnik
Форумчанин
 
Регистрация: 21.02.2013
Сообщений: 105
По умолчанию

А как это все связать?)
Там количество символом может быть разное!
Поэтому через copy не получится(

Последний раз редактировалось develsnik; 07.03.2013 в 19:04.
develsnik вне форума Ответить с цитированием
Старый 07.03.2013, 19:27   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
s:='';
i1:=PosEx('Слово1',Memo.Text,1);
if i1>0 then begin
  i2:=PosEx('Слово2',Memo.Text,i1+Length('Слово1'));
  if i2>0 then s:=Copy(Memo.Text,i1+Length('Слово1'),i2-i1-Length('Слово1'));
end;
//в s результат, + куча всяких нюансов, если 'Слово1' или 'Слово2' не одно в тексте
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 07.03.2013 в 19:34.
Аватар вне форума Ответить с цитированием
Старый 07.03.2013, 19:35   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Получится.
Код:
s:=Memo.Lines.Text;
i:=pos('Слово1',s); delete(s,1,i);
i:=pos('Слово2',s); 
...:=copy(s,1,i);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.03.2013, 20:06   #7
develsnik
Форумчанин
 
Регистрация: 21.02.2013
Сообщений: 105
По умолчанию

не получилось(
у меня в memo html код/
вот что должно остаться.
Код HTML:
<div class="p-hv-5">
	<h2>
		<a href="/news/">Новости</a>
	</h2>
	
		
		<h3>
			<a href="/news/head/17992392/">Прощание с Андреем Паниным состоится 12 марта</a>
		</h3>
	
		
		<h3>
			<a href="/news/head/17994029/">Путин рассказал, как поддерживает физическую форму</a>
		</h3>
	
		
		<h3>
			<a href="/news/head/17940141/">Пехтин написал заявление о сложении с себя депутатских полномочий</a>
		</h3>
	
		
		<h3>
			<a href="/news/head/17994324/">Нижегородец съел постановление суда в зале заседаний</a>
		</h3>
	
		
		<h3>
			<a href="/news/head/17991964/">Депутат Волков прокомментировал свой «побег» от гаишников</a>
		</h3>
	
</div>

Последний раз редактировалось develsnik; 07.03.2013 в 20:14.
develsnik вне форума Ответить с цитированием
Старый 07.03.2013, 20:31   #8
dkfl10011
 
Регистрация: 07.03.2013
Сообщений: 5
По умолчанию

попробуй это:
Код:
function TT(const s,s2:string;m:TMemo):string;
var i:integer;st:string;bool:boolean;
begin
i:=0;result:='';
while true do begin
  st:=m.Lines[i];
  inc(i);
if ((PosEx(s,st)<>0) and (PosEx(s2,st)<>0)) then  begin
  result:=copy(st,PosEx(s,st),PosEx(s2,st)+length(s2)); break end
else
if ((PosEx(s,st)<>0) and (PosEx(s2,st)=0)) then begin
  result:=result+copy(st,PosEx(s,st),length(st))+#13#10; bool:=true end
else if(((PosEx(s,st)=0)and(PosEx(s2,st)=0))and(bool)) then
  result:=result+st+#13#10
else if (PosEx(s2,st)<>0) then begin
  result:=result+copy(st,0,PosEx(s2,st)+length(s2)); break end; end;
end;
dkfl10011 вне форума Ответить с цитированием
Старый 07.03.2013, 20:37   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код в студию )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.03.2013, 20:39   #10
develsnik
Форумчанин
 
Регистрация: 21.02.2013
Сообщений: 105
По умолчанию

вот что у меня получилось:
не работает(
Код HTML:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, StrUtils;

type
  TForm2 = class(TForm)
    IdHTTP1: TIdHTTP;
    Button1: TButton;
    Memo1: TMemo;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}
function  TT(const s,s2:string;m:TMemo):string;
var i:integer;st:string;bool:boolean;
begin
i:=0;result:='';
while true do begin
  st:=m.Lines[i];
  inc(i);
if ((PosEx(s,st)<>0) and (PosEx(s2,st)<>0)) then  begin
  result:=copy(st,PosEx(s,st),PosEx(s2,st)+length(s2)); break end
else
if ((PosEx(s,st)<>0) and (PosEx(s2,st)=0)) then begin
  result:=result+copy(st,PosEx(s,st),length(st))+#13#10; bool:=true end
else if(((PosEx(s,st)=0)and(PosEx(s2,st)=0))and(bool)) then
  result:=result+st+#13#10
else if (PosEx(s2,st)<>0) then begin
  result:=result+copy(st,0,PosEx(s2,st)+length(s2)); break end; end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin

  memo1.Text:= utf8toansi(idhttp1.Get('http://www.http://m.rambler.ru/'));
   TT;
end;


end.
develsnik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
мемо не отображает русский текст. lg12 Помощь студентам 9 06.03.2013 18:10
мемо и текст nikolas0 Общие вопросы Delphi 14 02.02.2011 01:26
Как скопировать текст из мемо одной формы в мемо другой CraZZy RabbIt Общие вопросы Delphi 4 27.02.2009 00:01
Про текст в мемо Marsik Помощь студентам 3 15.05.2008 08:01
Загрузить текст из файла в мемо Teen4jump Общие вопросы Delphi 2 17.08.2007 21:05