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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2011, 07:41   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Андрей, вот ещё такой вариант решения:

в uses ручками дописать через запятую модуль StrUtils
(в этом модуле описана используемая функция PosEx

Код:
uses Windows, Messages, SysUtils, .... , StrUtils ; 

.....

procedure Tfmain.Button_Cut_And_SaveClick(Sender: TObject);
const
   sBegin = 'Меня зовут Andrew.';
   sEnd = 'Помогите пожалуйста';
   FileName = 'Saved_memo.txt';

var iPos1, iPos2 : integer;
   s : string;
begin
  {берём весь текст из Memo в строковую переменную}
  s := Memo1.Text;
  iPos1 := Pos(sBegin, s); {нашли позицию откуда вырезать}
  if iPos1 = 0 then begin
    ShowMessage('Начальной фразы не найдено! Вырезать не будем!');
    Exit;
  end;
  iPos1 := iPos1 + Length(sBegin); {пропустим начальный текст}

  {теперь найдём позицию до куда вырезать }
  iPos2 := PosEx(sEnd, s, iPos1);
  if iPos2 = 0 then begin
    ShowMessage('Финальной фразы не найдено! Тогда вырежем всё до конца текста');
    iPos2 := Length(s)+1;
  end;
  iPos2 := iPos2 - 1;

  {а вот и вырезание}
  s := Copy(s, iPos1, iPos2 - iPos1 + 1);

  {Вернём текст в Memo}
  Memo1.Text := s;

  {сохраним в файл}
  Memo1.Lines.SaveToFile(FileName);
end;
p.s. текст начальный и финальный ищется с учётом регистра.
Если это не нужно, искать надо приводя текст к одному регистру.
например, делать всё прописными буквами:
Код:
  iPos1 := Pos(AnsiUpperCase(sBegin), AnsiUpperCase(s));
...
  {теперь найдём позицию до куда вырезать }
  iPos2 := PosEx(AnsiUpperCase(sEnd), AnsiUpperCase(s), iPos1);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.03.2011, 15:43   #12
Andrew101095
Пользователь
 
Регистрация: 18.07.2010
Сообщений: 21
По умолчанию

Спасибо всем большое)))
Andrew101095 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с текстом nejimakc Помощь студентам 6 09.11.2010 17:37
Работа с текстом fakir9999 Общие вопросы Delphi 3 04.06.2009 16:28
работа с текстом... Poll Помощь студентам 5 23.01.2009 11:43
Работа с текстом.[C] DropYourWeapon Общие вопросы C/C++ 3 15.10.2008 21:55
Работа с текстом boostman Общие вопросы Delphi 5 14.09.2008 12:57