Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 2
Регистрация: 01.10.2013
Сообщений: 344

Сортировка в файле

08.06.2014, 22:40. Показов 523. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
program type_record;
 
type weapon=record
     model: string[30];
     kalibr: real;
     dalnost: real;
     oboima: integer;
     stoimost: real;
end;
TWeapon=array [1..100] of weapon;
procedure sort(var Arr:Tweapon;n:integer);
var i,j:integer;
    x:weapon;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
 if arr[i].stoimost<arr[j].stoimost then
  begin
    x:=arr[i];
    arr[i]:=arr[j];
    arr[j]:=x;
  end;
end;
 
 
function addcars(var x:weapon; var v,n:integer):weapon;
        var
        y: Tweapon;
                Fout:text;
        begin
                assign(Fout, 'Result.txt');
                v:=v+1;
                writeln('#',v);
                if v = 0 then
                        rewrite(Fout)
                else
                        append(Fout);
                writeln(Fout, '#',v);
                Write('Модель: '); ReadLn(y[n].model);
                Write('Калибр: '); ReadLn(y[n].kalibr);
                Write('Дальность: '); ReadLn(y[n].dalnost);
                Write('Объем обоймы: '); ReadLn(y[n].oboima);
                Write('Стоимость: '); ReadLn(y[n].stoimost);
                writeln();
                close(Fout);
        end;
 
 
var x: Tweapon;
    maxdal, maxkal: weapon;
    Fout: text;
    i, n, y, c, k: integer;
 
begin
writeln('Выбирите действие ');
writeln('1. Добавить оружие: ');
write('2. Перезаписать орижие: ');
readln(c);
 
 if c=1 then   addcars(x);
 
if c=2 then
  begin
   write('Введите количество марок: '); readln(k);
     assign(Fout, 'Result.txt'); rewrite(Fout);
      n:=1;
       for y := 1 to k do
   begin
    Write('Модель: '); ReadLn(x[n].model);
    Write('Калибр: '); ReadLn(x[n].kalibr);
    Write('Дальность: '); ReadLn(x[n].dalnost);
    Write('Объем обоймы: '); ReadLn(x[n].oboima);
    Write('Стоимость: '); ReadLn(x[n].stoimost);
   if x[n].kalibr > maxkal.kalibr then maxkal := x[n];
   if x[n].dalnost > maxdal.dalnost then maxdal := x[n];
    inc(n);
    end;
 sort(x,n-1);
    for i:= 1 to n-1 do
  begin
    writeln(Fout,'Модель оружия: ',x[i].model,'');
    writeln(Fout,'Калибр пули: ',x[i].kalibr,' mm');
    writeln(Fout,'Дальность стрельбы: ',x[i].dalnost,' метр(ов)');
    writeln(Fout,'Объём обоимы: ',x[i].oboima,' патрон(ов)');
    writeln(Fout,'Стоимость: ',x[i].stoimost,'$');
     writeln(Fout,'');
  end;
 
    Writeln(Fout,'Наибольшее по калибру: ', maxkal.model);
    Writeln(Fout,'Наибольшее по дальности: ', maxdal.model);
 
close(fout);
end;
  end.
Ребят такая вот проблема, в моей проге можно выбрать 2 условия, добавить марку оружия к уже имеющимся в файле, или перезаписать весь файл, ну вот, когда я перезаписываю весь файл и ввожу марки оружия они нормально сортируются, а вот когда добавляю уже к имеющимся, марки оружия просто добавляются в конец файла, КАК СДЕЛАТЬ ЧТОБ ОНИ ТОЖЕ СОРТИРОВАЛИСЬ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.06.2014, 22:40
Ответы с готовыми решениями:

Сортировка в struct по алфавиту. Сортировка в файле
Допустим вот такая вот структура struct Art_space { public string Name { get; set; } ...

Сортировка в файле
Ребята, помогите решить одну проблемку: Вот часть кода: uses crt; type d=record fio:record{Ф.И.О} ...

Сортировка в файле
Разработать программу сортировки (упорядочения по возрастанию значений элементов) файла, содержащего целые числа. Добавлено через 4...

3
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
08.06.2014, 22:59
demon31, ну, так не делается, если Вы тему во фрилансе создали, зачем Вам тема в разделе помощи?!

А по сути вопроса (надеюсь, я бизнес никому не подпорчу ) - так и должно быть.
Самый простой способ добавить записи так, чтобы файл остался в отсортирвоанном состоянии - прочитать файл полностью в массив. Добавить записи в массив, либо так, чтобы они стали на своё место, со сдвиго последующих записей, либо, добавляйте все новые записи в конец массива, сортируйте массив и записывайте его поверх вашего файла.

p.s. можно отсортировать файл после добавления в него записей. Тем же способом, что описан выше.
0
0 / 0 / 2
Регистрация: 01.10.2013
Сообщений: 344
08.06.2014, 23:10  [ТС]
Ну насчет фриланса, это предосторожность, тут не очень много шансов, что помогут, да и из твоих слов я ничего не понял, не особо силен в паскеле
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
08.06.2014, 23:26
Цитата Сообщение от demon31 Посмотреть сообщение
да и из твоих слов я ничего не понял, не особо силен в паскеле
погоди. А программу не ты написал? Тогда, конечно, беда-печалька...
Плохо, что у тебя в программе информация записывается в текстовый файл.
Если бы использовался нормальный типизированный файл (file of weapon), было бы намного проще считывать данные из файла. А вот для того, чтобы из файла данные прочитать в массив, придётся повозиться!..

Надеюсь, что во фрилансе откликнутся и помогут!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.06.2014, 23:26
Помогаю со студенческими работами здесь

Сортировка в файле
program oneword; Uses CRT; {modul for cleaning screen} Var f,f1:text;{f-file with text type} s,temp:string; ...

Сортировка в файле
Приветствую! Есть такая программа - она по некоторому критерию выписывает в файл несколько строк, которые должна отсортировать по убыванию...

Сортировка в файле
Люди, помогите сделать сортировку параметров в файле к программе: program type_record; type weapon=record; model: string; ...

Сортировка в файле
Имеется структура спортсмен: его номер, оценка (O), коэффициент сложности (K). Требуется упорядочить ее по убыванию по параметру O/K...

Сортировка в файле
Сформировать файлы f1 и f2, компоненты которых - целые числа, упорядоченные по возрастанию. Получить в файле f3 все числа из файлов f1 и f2...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru