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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2013, 22:43   #1
TSu
Пользователь
 
Регистрация: 17.07.2013
Сообщений: 10
Вопрос Перебор строк из Memo

Здравствуйте. Подскажите как сделать перебор строк из memo и сравнивать со стракой в Edit.
Строка1+Строка2
Строка1+Строка3
Строка2+Строка1
Строка3+СтрокаN
...
Строка1+Строка2+Строка3+Строка4+Стр окаN
Строка1+Строка3+Строка2+Строка4+Стр окаN
Строка1+Строка4+Строка2+Строка3+Стр окаN

т.е порядок строк должен пройти все комбинации

Последний раз редактировалось TSu; 29.07.2013 в 23:06.
TSu вне форума Ответить с цитированием
Старый 29.07.2013, 22:48   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цикл For и оператор сравнения = .
Человек_Борща вне форума Ответить с цитированием
Старый 29.07.2013, 22:51   #3
TSu
Пользователь
 
Регистрация: 17.07.2013
Сообщений: 10
По умолчанию

Не правильно написал, сейчас поправлю тему...
TSu вне форума Ответить с цитированием
Старый 29.07.2013, 23:11   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вот код перебора N вариантов из N строк

на форму кидайте два мемо (Memo1 и memoResult и кнопку)
ну и такой код:
Код:
unit Unit5;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm5 = class(TForm)
    Memo1: TMemo;
    memoResult: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Show_Slova(const SS : string);
    procedure ShowVariant(S0,S1 : string);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

var S:string;

procedure TForm5.Show_Slova(const SS : string);
var j: integer;
  SResult : string;
begin
  SResult := '';
  for j:=1 to Length(SS) do SResult := SResult + Memo1.Lines[ord(SS[j])-1] + ' ';
  memoResult.Lines.Append(SResult);
end;

procedure TForm5.ShowVariant(S0,S1 : string);
var I : integer;
begin
  if length(S1)=1 then begin Show_Slova(S0+S1); Exit end;
  for i:=1 to length(S1) do begin
     ShowVariant(S0+S1[i],copy(S1,1,I-1)+
                             copy(S1,I+1,length(S1)));
  end;
end;


procedure TForm5.Button1Click(Sender: TObject);
var
  k:integer;
begin
  Memo1.Lines.Clear;
  Memo1.Lines.Append('умный');
  Memo1.Lines.Append('Вася');
  Memo1.Lines.Append('учит');
  Memo1.Lines.Append('уроки');

  memoResult.Lines.Clear;
  memoResult.Lines.Append('----------  Варианты перестановок слов  ------------');
  S := '';
  for k:=1 to Memo1.Lines.Count do S := S + chr(k);
  ShowVariant('',S);
end;

end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.07.2013, 23:21   #5
TSu
Пользователь
 
Регистрация: 17.07.2013
Сообщений: 10
По умолчанию

Serge_Bliznykov, спасибо большое, то что надо) ну почти то что надо)
Нет вариантов из 2х строк из 3х и т.д. Как их вывести?

Последний раз редактировалось TSu; 30.07.2013 в 00:36.
TSu вне форума Ответить с цитированием
Старый 30.07.2013, 15:19   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, тогда этот код попробуйте

MemoStringsCombination_Sources.rar

MemoStringsCombination_EXE.rar

примечание.
программа заодно, помимо всех ваших размещений, может выдавать варианты
размещения с повторами M из N
сочетания без повторов M из N
размещения без повторов M из N



p.s. код программы собран из разных источников, к тому же, писался буквально "на коленке", поэтому претензии по некрасивому/нелогичному/неэффективному/лишнему коду не принимаются...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.07.2013, 19:17   #7
TSu
Пользователь
 
Регистрация: 17.07.2013
Сообщений: 10
По умолчанию

Serge_Bliznykov, ещё раз спасибо
TSu вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа перебора вариантов (изменить перебор цифровой на перебор буквенный) BArt2000 Паскаль, Turbo Pascal, PascalABC.NET 5 02.03.2015 12:56
Delphi.Чтение файла в Memo, вычисление, добавление строк в Memo antonio_sk Помощь студентам 0 26.04.2013 18:01
Перебор строк, оставить с наибольшим значением в ячейке strannick Microsoft Office Excel 5 02.02.2013 23:08
Перебор строк в DBGRID Sepish100 Компоненты Delphi 6 22.11.2011 16:02
не могу разобраться смакросом (перебор строк) aleks1982 Microsoft Office Excel 5 26.07.2010 15:25