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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2009, 04:24   #1
Mango
Пользователь
 
Аватар для Mango
 
Регистрация: 08.09.2008
Сообщений: 20
По умолчанию Сортировка в Delphi

Помогите пожалуйста написать код (алгоритм)сортировки в компоненте StringGrid, мне нужно расположить в алфавитном порядке авторов книг. (для задачи на записи),только пожалуйста не давайте ссылки на википедию я там уже все прочитала ничего не нашла толком..
Mango вне форума Ответить с цитированием
Старый 03.01.2009, 09:41   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Если Вам нужно отсортировать массив записей по одному из полей, напрмер по фамилии автора, то сортировка идет также как любого одномерного массива. Например у Вас 2 поля - автор и название.
Код:
const n=10;
type Tknig=record
                avt,naz:string[20];
                end;
var sp:array[1..n] of Tknig;//массив записей
      bf:Tknig; //буфер для сортировки записей
............................
//сортировка по фамилии
for i:=1 to n-1 do
for j:=i+1 to n do
if sp[i].avt>sp[j].avt then
     begin
       bf:=sp[i];
       sp[i]:=sp[j];
       sp[j]:=bf;
      end;
Сейчас у Вас весь массив отсортирован по возрастанию в алфавите фамилии автора, и Вы можете разместить его например в StringGrid.
В самой таблице сортировать массив записей очень неудобно, да и не нужно. У нее даже свойства Sorted нет.
puporev вне форума Ответить с цитированием
Старый 05.01.2009, 05:45   #3
Mango
Пользователь
 
Аватар для Mango
 
Регистрация: 08.09.2008
Сообщений: 20
По умолчанию

дело в том, что у меня есть задание составить программу формирования архива данных на диске по изданным книгам. Данные включают следующие поля: 1) автор, 2) название, 3) год издания, 4) город, где издана книга, 5) название издательства, 6) цена книги
записи у меня сразу вносятся в stringGrid а затем сохраняются в файл. т е я не могу понять где делать сортировку?
Mango вне форума Ответить с цитированием
Старый 05.01.2009, 07:46   #4
[koyot]
Пользователь
 
Аватар для [koyot]
 
Регистрация: 17.12.2008
Сообщений: 17
По умолчанию

после вставки в грид но перед сохранением о_О
ICQ 897-45-46
[koyot] вне форума Ответить с цитированием
Старый 05.01.2009, 09:25   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

После заполнения таблицы нужно все-равно создать массив записей, чтоб потом его сортировать. Типа такого.
Код:
for i:=0 to Stringgrid1.RowCount-1 do
   begin
     sp[i].avt:=Stringgrid1.Cells[1,i];
     sp[i].naz:=Stringgrid1.Cells[2,i];
      sp[i].god:=Stringgrid1.Cells[3,i];
     sp[i].gor:=Stringgrid1.Cells[4,i];
     ..............................................
  end;
Так создаете массив, потом сортируете как я писал, а потом хоть в файл, хоть снова в таблицу или еще куда.
puporev вне форума Ответить с цитированием
Старый 07.01.2009, 05:47   #6
Mango
Пользователь
 
Аватар для Mango
 
Регистрация: 08.09.2008
Сообщений: 20
По умолчанию

Большое спасибо, разобралась)
Mango вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка шейкер-пузырьком (Delphi) Biker29 Помощь студентам 6 25.08.2013 12:16
Помогите - Сортировка методом пузырька Delphi #Nii Помощь студентам 5 21.12.2008 14:53
Сортировка[Delphi] sergey31 Помощь студентам 13 29.05.2008 23:30