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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2015, 10:19   #1
Олямбан
Пользователь
 
Регистрация: 21.06.2015
Сообщений: 14
По умолчанию Сортировка... Помогите

Нужна ваша помощь. У меня есть кусочек программы, которая при вводе нашего текста считает количество каждой буквы и выводит. Мне нужно сортировать это по убыванию. и еще при подсчете не учитывать строчную и заглавную букву.
Код:
var
  Form1: TForm1;
  k:string;
  a:char;   //символ
  b:integer;//кол-во символа "a" в строке
  c:integer;//количество различных символов
implementation

{$R *.dfm}

procedure clear;
begin
  Form1.StringGrid1.Cols[1].Clear;
  Form1.StringGrid1.Cols[2].Clear;
  Form1.StringGrid1.RowCount:=1;
  b:=0;
  c:=0;
end;

procedure TForm1.Button1Click(Sender: TObject);
  var i:integer;
begin
  clear;
  Form1.StringGrid1.Cells[0,c]:='Символ';
  Form1.StringGrid1.Cells[1,c]:='Количество';
  k:=Edit1.Text;
  while Length(k)<>0 do
    begin
      inc(c);
      a:=k[1];;
      b:=1;

      for i := 2 to Length(k) do
        if k[i]=a then inc(b);
      k:=StringReplace(k,a,'',
                              [rfReplaceAll]);
      Form1.StringGrid1.Cells[0,c]:='"'+a+'"';
      Form1.StringGrid1.Cells[1,c]:=IntToStr(b);
    end;
  Form1.StringGrid1.RowCount:=c+1;
end;

end.

Последний раз редактировалось Stilet; 21.06.2015 в 11:49.
Олямбан вне форума Ответить с цитированием
Старый 21.06.2015, 10:45   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от Олямбан Посмотреть сообщение
.. и еще при подсчете не учитывать строчную и заглавную букву..
Тогда не так
Код:
k:=StringReplace(k,a,'',[rfReplaceAll]);
.. а так
Код:
k:=StringReplace(k,a,'',[rfReplaceAll,rfIgnoreCase]);
Или сделать так
Код:
k:=AnsiUpperCase(Edit1.Text);
type_Oleg вне форума Ответить с цитированием
Старый 21.06.2015, 11:10   #3
Олямбан
Пользователь
 
Регистрация: 21.06.2015
Сообщений: 14
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Тогда не так
Код:
k:=StringReplace(k,a,'',[rfReplaceAll]);
.. а так
Код:
k:=StringReplace(k,a,'',[rfReplaceAll,rfIgnoreCase]);
Или сделать так
Код:
k:=AnsiUpperCase(Edit1.Text);


Блин, я немного не то написала, мне нужно чтобы заглавная считалась так же как и строчная. вот. и пробелы чтобы не учитывались.
Олямбан вне форума Ответить с цитированием
Старый 21.06.2015, 11:51   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

k:=AnsiLowerCase(StringReplace(Edit 1.Text,' ','',[rfReplaceAll,rfIgnoreCase]));

P.S. Где-то я уже такой вопрос недавно видел...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.06.2015, 12:26   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от Олямбан Посмотреть сообщение
Блин, я немного не то написала, мне нужно чтобы заглавная считалась так же как и строчная. вот. и пробелы чтобы не учитывались.
Я так и понял.

AnsiUpperCase превращает например ЙцУКЕнг в ЙЦУКЕНГ
Можно наоборот, AnsiLowerCase. Будет йцукенг
type_Oleg вне форума Ответить с цитированием
Старый 21.06.2015, 13:56   #6
Олямбан
Пользователь
 
Регистрация: 21.06.2015
Сообщений: 14
Печаль Спасибо большое) а с сортировкой на моем примере помочь можете пожалуйста ? не могу никак сделать(

а с сортировкой на моем примере помочь можете пожалуйста ?
Олямбан вне форума Ответить с цитированием
Старый 21.06.2015, 13:58   #7
Олямбан
Пользователь
 
Регистрация: 21.06.2015
Сообщений: 14
По умолчанию

спасибо)) а с сортировкой на моем примере помочь можете пожалуйста ?
Олямбан вне форума Ответить с цитированием
Старый 21.06.2015, 14:11   #8
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Можно сортировать прямо в StringGrid
Вот например
type_Oleg вне форума Ответить с цитированием
Старый 21.06.2015, 14:51   #9
Олямбан
Пользователь
 
Регистрация: 21.06.2015
Сообщений: 14
По умолчанию

Если бы я еще разбиралась ( не поможете с моим кодом как сделать сортировку по убыванию( пожалуйста
Олямбан вне форума Ответить с цитированием
Старый 21.06.2015, 15:37   #10
Олямбан
Пользователь
 
Регистрация: 21.06.2015
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
k:=AnsiLowerCase(StringReplace(Edit 1.Text,' ','',[rfReplaceAll,rfIgnoreCase]));

P.S. Где-то я уже такой вопрос недавно видел...
Можете помочь с сортировкой по убыванию пожалуйста?
Олямбан вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка строк массива. Помогите. multimix Общие вопросы C/C++ 1 23.05.2015 01:05
Быстрая сортировка(сортировка Хоара). Сортировка фрагмента массива [C++] druger Помощь студентам 0 20.04.2012 15:49
Быстрая сортировка( помогите исправить ошибки) _Studentka_ Общие вопросы по Java, Java SE, Kotlin 2 22.11.2009 02:15
помогите сортировка+сложение Dimati87 Microsoft Office Excel 7 04.03.2009 09:22
Помогите - Сортировка методом пузырька Delphi #Nii Помощь студентам 5 21.12.2008 14:53