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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2011, 01:50   #1
Lauri
Форумчанин
 
Регистрация: 01.04.2010
Сообщений: 171
По умолчанию Парсинг строк в Мемо

Всем доброй ночи. Такая проблема, имеется мемо со строками. Их парное количество. Нужно обьеденить каждую непарную, с каждой парной. Т.е первую с второй, третью с четвёртой и тд. Чё то на ночь башка не варит как этоо сделать Задача проста вроди. Прошу у вас помощи
Lauri вне форума Ответить с цитированием
Старый 04.12.2011, 01:58   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
i := 0;
while (i < Memo1.Lines.Count - 1) do begin
  //
  Memo1.Lines[i] := Memo1.Lines[i] + Memo1.Lines[i + 1];
  inc(i, 2);
end;
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 04.12.2011, 02:07   #3
Lauri
Форумчанин
 
Регистрация: 01.04.2010
Сообщений: 171
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
Код:
i := 0;
while (i < Memo1.Lines.Count - 1) do begin
  //
  Memo1.Lines[i] := Memo1.Lines[i] + Memo1.Lines[i + 1];
  inc(i, 2);
end;
Спасибо, работает, только не удаляет парную строку. Т.е нужно что бы осталась только "склеенная" строка
Lauri вне форума Ответить с цитированием
Старый 04.12.2011, 02:15   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> не удаляет парную строку

а, ну да, мне тоже показалось, что чего-то не хватает )

Код:
i := 0;
while (i < Memo1.Lines.Count - 1) do begin
  //
  Memo1.Lines[i] := Memo1.Lines[i] + Memo1.Lines[i + 1];
  Memo1.Lines.Delete(i + 1);
  inc(i);
end;
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 04.12.2011, 02:18   #5
Lauri
Форумчанин
 
Регистрация: 01.04.2010
Сообщений: 171
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
> не удаляет парную строку

а, ну да, мне тоже показалось, что чего-то не хватает )

Код:
i := 0;
while (i < Memo1.Lines.Count - 1) do begin
  //
  Memo1.Lines[i] := Memo1.Lines[i] + Memo1.Lines[i + 1];
  Memo1.Lines.Delete(i + 1);
  inc(i);
end;
Спасибо, работает
Lauri вне форума Ответить с цитированием
Старый 04.12.2011, 02:36   #6
Lauri
Форумчанин
 
Регистрация: 01.04.2010
Сообщений: 171
По умолчанию

Сори, но как преобразавать такую функцию для трёх строк?
пробовал вот так, но не получается
Код:
procedure MakeThree;
var
I:integer;
begin
i := 0;
while (i < form1.Memo2.Lines.Count - 1) do begin
  //
  form1.Memo2.Lines[i] := form1.Memo2.Lines[i] + form1.Memo2.Lines[i + 1];
  form1.Memo2.Lines[i] := form1.Memo2.Lines[i] + form1.Memo2.Lines[i + 2];
  form1.Memo2.Lines.Delete(i + 1);
  form1.Memo2.Lines.Delete(i + 2);
  inc(i);
end;
end;
Lauri вне форума Ответить с цитированием
Старый 04.12.2011, 02:56   #7
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

вот универсальный вариант на все случаи жизни )

Код:
procedure TForm1.combineStrings(N: Integer);
var
  i, j: Integer;
begin
  for i := 0 to Memo1.Lines.Count - N do begin
    for j := 1 to N - 1 do begin
      //
      Memo1.Lines[i] := Memo1.Lines[i] + Memo1.Lines[i + 1];
      Memo1.Lines.Delete(i + 1);
    end;
  end;
end;
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 04.12.2011, 02:59   #8
Lauri
Форумчанин
 
Регистрация: 01.04.2010
Сообщений: 171
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
вот универсальный вариант на все случаи жизни )

Код:
procedure TForm1.combineStrings(N: Integer);
var
  i, j: Integer;
begin
  for i := 0 to Memo1.Lines.Count - N do begin
    for j := 1 to N - 1 do begin
      //
      Memo1.Lines[i] := Memo1.Lines[i] + Memo1.Lines[i + 1];
      Memo1.Lines.Delete(i + 1);
    end;
  end;
end;
Спасибо огромное
Lauri вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос строк в Мемо efen Компоненты Delphi 9 11.01.2011 15:41
Колличество строк в Мемо Ceme4kin Общие вопросы C/C++ 2 09.09.2010 13:45
Получить кол-во строк в Мемо MyLastHit Общие вопросы Delphi 2 22.08.2010 18:41
Мемо перенос строк MSD Помощь студентам 1 16.05.2010 18:22
количество заполненных строк в МЕМО designer999 Общие вопросы Delphi 5 15.04.2010 13:18