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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2011, 14:13   #1
ondar
Пользователь
 
Регистрация: 06.10.2010
Сообщений: 10
По умолчанию Удаление всех строк из RichEdit, начиная с определённой строки

Каким образом можно удалить все строки из RichEdit, начиная с определённой строки?
Пусть имеется файл, состоящий из строк текста:
-------------------------------------------------
[овощи]
помидор
огурец
морковь

[фрукты]
яблоко
груша
апельсин
мандарин
абрикос
-------------------------------------------------
Каким образом можно удалить все строки, начиная со строки [фрукты]?

вот код:
-------------------------------------------------
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  str:string;
  i:integer;
begin
  RichEdit1.Lines.LoadFromFile('meet.txt');
  for i:=0 to RichEdit1.Lines.Count-1 do
  begin
    str:=RichEdit1.Lines[i];
    if pos('[фрукты]',str)>0 then
    begin
      RichEdit1.Lines.Delete(i);
    end;
  end;
end;
-------------------------------------------------
в этом случае удаляется только строка [фрукты]

Последний раз редактировалось artemavd; 05.06.2011 в 16:09.
ondar вне форума Ответить с цитированием
Старый 05.06.2011, 14:19   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Твой файл напоминает мне INI вот ты и грузи его как INI.
А затем TiniFile.EraseSection('[TRY-section]');
Человек_Борща вне форума Ответить с цитированием
Старый 05.06.2011, 20:06   #3
ondar
Пользователь
 
Регистрация: 06.10.2010
Сообщений: 10
По умолчанию

А по-другому никак?
ondar вне форума Ответить с цитированием
Старый 05.06.2011, 20:10   #4
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Засунуть это в цикл While и выйти из него когда Count будет равен номеру строки после которой нужно удалять.

Код:
RichEdit1.Lines.Delete(номер строки после которой нужно удалять);
В общем замысел понятен.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 06.06.2011, 10:26   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

проиллюстрирую идею Valio примером кода:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i, FindI : integer;
begin
  RichEdit1.Lines.LoadFromFile('meet.txt');
  FindI := -1;
  for i:=0 to RichEdit1.Lines.Count-1 do
    if pos('[фрукты]',RichEdit1.Lines[i])>0 then
    begin
      FindI := i;
      break
    end;

  // если что-то нашли, то удалим все строки больше-равные найденному номеру
  if FindI>=0 then
    for i:=RichEdit1.Lines.Count-1 downto FindI do
       RichEdit1.Lines.Delete(i);

end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.06.2011, 06:48   #6
ondar
Пользователь
 
Регистрация: 06.10.2010
Сообщений: 10
По умолчанию

Спасибо, товарищи, что помогли!
ondar вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать значение из определённой ячейки ТЕКУЩЕЙ СТРОКИ в определённую ячейку другого листа Павел-812 Microsoft Office Excel 12 12.07.2012 17:44
Удаление из строки всех не alpha символов skeletor PHP 3 12.07.2010 17:28
перенос строк удаление ненужных строк HelperAwM Microsoft Office Excel 5 26.06.2010 18:42
Матрица A состоит из 8 строк и 6 столбцов. вычесть из всех её строк, начиная со второй, первую строку Dimak24 Помощь студентам 1 19.12.2008 15:45