4 / 4 / 1
Регистрация: 22.02.2009
Сообщений: 35
1

Сортировка записей в типизированом файле по алфавиту.

07.06.2009, 21:51. Показов 8277. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени всем.
Ситуация такая: есть файл, елементом которого есть запись. Запись состоит из 5 полей, одним из которых являеться назавание. Вот относительно етого поля я хочу остортировать файл. Т.е. что бы при считывании файла, после его сотрировки, на екран выводились записи и имена ишли в алфавитом порядке. (Пусть сотрировка будет идти только по первой букве, так будет легче.)
Вот в чем вопрос: немогу придумать нормальный алгоритм. Решил для начала узнать какая самамя последняя буква есть. Сделал ето для того, что бы ганять не по всему алфавиту, а до последней нужной буквы. А реализовать етот самый прогон и сортировку не получаеться. Что-бы придумать, что бы поочерно каждая первая буква поля имени сравнивалась с алфавитом и так целый файл?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2009, 21:51
Ответы с готовыми решениями:

Сортировка записей по алфавиту
всем привет! подскажите плиз! у меня в файле есть записи (там фамилии людей) мне нужно сделать все...

Сортировка записей Структуры по алфавиту
#include <iostream> #include <iomanip> using namespace std; struct STUD // Структура STUD { ...

Кодировка в типизированом файле в Delphi
Код: procedure TForm1.Button1Click(Sender: TObject); var medal: TMedal; begin with medal...

Сортировка в struct по алфавиту. Сортировка в файле
Допустим вот такая вот структура struct Art_space { ...

8
Босс
161 / 126 / 10
Регистрация: 03.06.2009
Сообщений: 750
07.06.2009, 22:04 2
используй сравнение строк:
'a'<'b';
'abc'<'afa';
итд.
1
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
07.06.2009, 22:09 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
type zap=record
              name:string[20];
              .....................
              ..........................
              end;
var z:array[1..50] of zap;
      bf:zap;
.............................................
for i:=1 to n-1 do
for j:=i+1 to n do
if z[i].name>z[j].name then
 begin
  bf:=z[i];
  z[i]:=z[j[;
  z[j]:=bf;
 end;
1
4 / 4 / 1
Регистрация: 22.02.2009
Сообщений: 35
07.06.2009, 23:32  [ТС] 4
У меня файл пишеться без масива. Хотя... думаю файлсайз решит ету проблему.) Спасибо за наводки.
0
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
08.06.2009, 05:39 5
У меня файл пишеться без масива.
Тогда сортировка будет чуть сложней, при помощи seek, но суть от этого не меняется.
Если нужно, могу начеркать пример такой сортировки. Главное, что сортировать только по первой букве нет никакого смысла, ибо строки автоматом сортируются по правилам языка, т.е. сначалала по первой букве, потом по второй и т.д.
0
4 / 4 / 1
Регистрация: 22.02.2009
Сообщений: 35
08.06.2009, 18:43  [ТС] 6
Ну я предполагаю так:
Хотя, чувствую, что бредово.)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
type zap=record
              name:string[20];
              .....................
              ..........................
              end;
var 
f:file of zap;      
a,b,g:zap;
.............................................
for i:=1 to  filesize(f) do
begin
 for j:=1 to filesize(f) do
 begin
  seek(f,i-1);
  read(f,a);
  seek(f,j-1);
  if b.name>a.name then
  begin
   a:=g; a:=b; b:=g;
  end;
 eng;
eng;
0
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
08.06.2009, 18:55 7
Вот пример сортировки в типизированном файле, поле роли не играет.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
reset(g);
for i:=0 to filesize(g)-2 do
for j:=i+1 to filesize(g)-1 do
  begin
    seek(g,i);
    read(g,x);
    seek(g,j);
    read(g,y);
    if x.kol>y.kol then
      begin
       sp:=x;
       x:=y;
       y:=sp;
       seek(g,i);
       write(g,x);
       seek(g,j);
       write(g,sp);
      end;
   end;
close(g);
1
4 / 4 / 1
Регистрация: 22.02.2009
Сообщений: 35
08.06.2009, 20:01  [ТС] 8
Спасибо большое, а я забыл позаписывать файлы.) Адаптировал к своей проге - все великолепно.
0
1 / 1 / 3
Регистрация: 26.10.2013
Сообщений: 51
09.04.2014, 15:42 9
А можно этот код использовать для сортировки именно слов ? Смысле в алфавитном порядке ?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2014, 15:42
Помогаю со студенческими работами здесь

Сортировка записей по алфавиту. Найти ошибку
Вот так выглядит задача: Сведения об экспорте товара состоят из наименования товара, страны и...

Сортировка по алфавиту в файле
Дан файл в котором содержится информация в виде №;ФИО;Возраст;Группа 1;Иванов Иван...

Удаление последнего блока в типизированом файле
Добрый день! написал программу для работы с типизироваными файлами: программа создает файл, выводит...

Создание/заполнение и поиск в типизированом файле
Здравствуйте. Хочу написать простую програмку.Суть такова : сначала думаю нужно создать файл и...

Сортировка строк в файле по алфавиту
Помогите у меня есть файл из него я читаю строки первая и вторая считались и если по алфавиту...

Сортировка фамилий по алфавиту в файле
В файле записаны фамилии и через пробел номера. Необходимо отсортировать этот &quot;телефонный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru