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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2014, 12:19   #1
Ares80
Пользователь
 
Регистрация: 21.07.2011
Сообщений: 13
Вопрос Поменять местами или сортировка по алфавиту в memo

Добрый день!
Подскажите пожалуйста как в memo понять местами текст во всех строках либо отсортировать по алфавиту а не по цифрам.
1 Б
2 А
3 В
Нужно что бы было, либо:
А 2
Б 1
В 3
Либо:
2 А
1 Б
3 В
Ares80 вне форума Ответить с цитированием
Старый 29.05.2014, 12:20   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А как по цифрам сортируете?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.05.2014, 12:30   #3
Ares80
Пользователь
 
Регистрация: 21.07.2011
Сообщений: 13
По умолчанию

Аватар
procedure TForm1.Button3Click(Sender: TObject);
var sL:TStringList;
begin
sL:=TStringList.Create;
sL.Assign(Memo4.Lines);
sL.Sorted:=True;
Memo4.Lines.Assign(sL);
sL.Free;
end;

Но не подходит для моей задачи =(
Ares80 вне форума Ответить с цитированием
Старый 29.05.2014, 12:40   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Копай в сторону StringList.CustomSort
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.05.2014, 13:54   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

пример использования:
Код:
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Lines.Clear;
  Memo1.Lines.Append('2 А');
  Memo1.Lines.Append('1 Б');
  Memo1.Lines.Append('3 В');
end;


procedure TForm1.Button1Click(Sender: TObject);

function StringListCompareStrings(List: TStringList; Index1, Index2: Integer): Integer;
begin
  if List.Strings[Index1] = List.Strings[Index2] then Result := 0
  else
    if (Length(List.Strings[Index1])<2 ) or (Length(List.Strings[Index2])<2 )
          then begin
             if List.Strings[Index1] > List.Strings[Index2]
                then  Result :=  1
                else  Result :=  -1;
           end
           else begin
             if Copy(List.Strings[Index1],2,255) >  Copy(List.Strings[Index2],2,255)
                then  Result :=  1
                else  Result :=  -1;
           end;

end;

var TS : TStringList;
begin
  try
    TS := TStringList.Create;
    TS.Text := Memo1.Lines.Text;
    TS.CustomSort( @StringListCompareStrings );
    Memo1.Lines.Text := TS.Text;
  finally
    FreeAndNil(TS);
  end;
end;



end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.05.2014, 14:08   #6
Ares80
Пользователь
 
Регистрация: 21.07.2011
Сообщений: 13
Радость

Serge_Bliznykov, спасибо огромное!
Ares80 вне форума Ответить с цитированием
Старый 29.05.2014, 21:18   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Всегда пожалуйста!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi memo сортировка по алфавиту апрол Помощь студентам 1 12.12.2013 03:54
Поменять местами Dmitriy_Voland Microsoft Office Excel 1 22.08.2012 18:38
поменять местами научите Паскаль, Turbo Pascal, PascalABC.NET 13 08.01.2009 13:43
Поменять местами абзацы Иллидан Microsoft Office Word 1 16.09.2008 08:14
Поменять местами строки в memo Бублик Помощь студентам 5 18.11.2007 15:27