Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32

Запись record в массив из edit

20.02.2017, 17:52. Показов 4559. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, мне нужна помощь. Вообще есть задача: список людей стоящих в очереди на получение квартиры. В списке указаны порядковый номер, фамилия, имя, отчество и год занятия очереди. По указанному количеству квартир выдаваемых в год, упорядочить список и указать в каком порядке и в каком году люди получат квартиры.
Но до этого далеко.

Есть код: реализован интерфейс, сохранение и загрузка текстового файла и бла-бла-бла.

Delphi
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
95
96
97
98
99
100
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Menus;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    RichEdit1: TRichEdit;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Label6: TLabel;
    Edit5: TEdit;
    Button1: TButton;
    UpDown1: TUpDown;
    Edit6: TEdit;
    UpDown2: TUpDown;
    Label7: TLabel;
    Edit7: TEdit;
    Button2: TButton;
    RichEdit2: TRichEdit;
    procedure N4Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
type                              <<ВОТ ЭТИ СТРОКИ НЕПРАВИЛЬНЫ?
  zapis=record                 <<ВОТ ЭТИ СТРОКИ НЕПРАВИЛЬНЫ?
  fname: string[20];         <<ВОТ ЭТИ СТРОКИ НЕПРАВИЛЬНЫ?
  sname: string[20];         <<ВОТ ЭТИ СТРОКИ НЕПРАВИЛЬНЫ?
  tname: string[20];         <<ВОТ ЭТИ СТРОКИ НЕПРАВИЛЬНЫ?
end;
 
var
  fio: array [1..20] of zapis;   <<ВОТ ЭТИ СТРОКИ НЕПРАВИЛЬНЫ?
  Form1: TForm1;
  x:integer;
 
implementation
 
{$R *.dfm}
 
 
 
 
 
procedure TForm1.N4Click(Sender: TObject);
begin
Close
end;
 
procedure TForm1.N2Click(Sender: TObject);
begin
 
Form1.OpenDialog1.Filter := 'Текстовые файлы(*.txt)|*.txt| Форматированный текст (*.rtf)|*.rtf';
Form1.OpenDialog1.Execute();
Form1.RichEdit1.Lines.LoadFromFile(Form1.OpenDialog1.FileName);
end;
 
procedure TForm1.N3Click(Sender: TObject);
begin
Form1.SaveDialog1.Execute();
RichEdit1.Lines.SaveToFile(SaveDialog1.FileName+'.rtf');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
fio[i].fname:=Edit1.Text;                         <<ВОТ ЭТИ СТРОКИ НЕПРАВИЛЬНЫ?
RichEdit1.Lines.add(fio[i].fname);              <<ВОТ ЭТИ СТРОКИ НЕПРАВИЛЬНЫ?
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
RichEdit1.Clear;
end;
 
end.
Все данные записываются в edit. После этого должны заносится в строки RichEdit по нажатию кнопки. Но вот в чём проблема. Выдаёт ошибку ACCESS VIOLATION. Я что-то неправильно задал, или где-то неправильно обратился, в общем где-то ошибка с самим Record или с присвоением значения, или с массивом. Не понимаю. Если делать запись без Record,
использоваться строки
RichEdit1.Lines.add('¹ ' + Edit5.Text + ' ' + Edit1.Text + ' ' + Edit2.Text + ' ' + Edit3.Text + ' ' + Edit4.Text + ' ' + Edit7.Text);
Всё отлично работает. Но в таком случае вторую часть задачи(сортировку) не понимаю как сделать. Пожалуйста, наставьте на путь истинный.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.02.2017, 17:52
Ответы с готовыми решениями:

Как создать record внутри которого есть динамический массив с record-ами?
Упрощу код, чтоб не писать полные record-ы: type TSec = record vSize : DWord; vAddr : DWord; rSize : DWord; ...

Дан одномерный массив из N элементов, каждый из которых представляет собой запись вида Type ZAP=Record St: string [10];
Дан одномерный массив из N элементов, каждый из которых представляет собой запись вида Type ZAP=Record St: string ; Dt: integer; ...

Массив из данных типа "запись" (record) содержит сведения о выставленных на продажу автомобилях
кто-нибудь может пожалуйста помочь вот с этой программой в делфи. массив из данных типа &quot;запись&quot; (record) содержит сведения...

45
Модератор
 Аватар для D1973
9952 / 6487 / 2461
Регистрация: 21.01.2014
Сообщений: 27,485
Записей в блоге: 3
02.03.2017, 18:12
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Gluhow Посмотреть сообщение
И Win32 нет, и Windows-а нет... )
Gluhow, а Вы не в Лазарусе часом сидите? Если так, что же Вы людям в теме Delphi голову морочите!
0
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
02.03.2017, 22:09  [ТС]
Цитата Сообщение от Gluhow Посмотреть сообщение
Copy тоже?
Тоже (
0
30 / 24 / 22
Регистрация: 12.11.2011
Сообщений: 181
02.03.2017, 22:29
Цитата Сообщение от D1973 Посмотреть сообщение
Gluhow, а Вы не в Лазарусе часом сидите? Если так, что же Вы людям в теме Delphi голову морочите!
Я да, на Kазарусе сижу, только вот синтаксис на этом уровне у Лазаруса ведь такой же, поэтому чем оффтопить, лучше бы сказали что надо подключить, т.к. про RightStr еще поверю что его нет, но про Copy уже не поверю.
Попробуй
Delphi
1
uses StrUtils
Вот здесь решение через Copy, вроде вообще ничего не подключали http://www.delphisources.ru/pa... tions.html
0
 Аватар для Пытливый
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
05.03.2017, 19:15
Вам предлагают рабочее решение под Дельфи, а вы его в Лазарус запихиваете. Получаете ошибку за ошибкой и продолжаете упорствовать, что разницы никакой
0
30 / 24 / 22
Регистрация: 12.11.2011
Сообщений: 181
06.03.2017, 09:07
Не, наоборот спросили как извлечь несколько последних символов, а я написал решение для Лаза, которое почему-то не сработало на дельфе. Судя потому что автор уже давно не пишет, думаю у него уже все работает
0
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 32
07.03.2017, 17:16  [ТС]
Цитата Сообщение от Gluhow Посмотреть сообщение
Не, наоборот спросили как извлечь несколько последних символов, а я написал решение для Лаза, которое почему-то не сработало на дельфе. Судя потому что автор уже давно не пишет, думаю у него уже все работает
Ничего не работает, сейчас сосредоточился на другом проекте, с которым дела получше, а тут никакого продвижения нет, хотя тема всё ещё актуальна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2017, 17:16

Запись в файл из полей Edit и проверка Edit на пустоту
TForm1 *Form1; int Ext=0; int i; //--------------------------------------------------------------------------- __fastcall...

Запись Record?
можно ли сделать так type q = record fx:byte; gl:string; img:TImage; ...

Запись record в dat файл
Записывать записывает, не знаю на сколько верно, а вот прочесть не может. Описание ClientBase type ClientBase = record ...

Запись в файл Record с TStringList
Подскажите, пожалуйста, как сохранить TStringList в составе record в файл? Вот эти данные нужно записать в файл, а потом считать. Всё...

Записать в файл запись типа record
Записать в файл запись типа record, как это произвести в интернете не нашел объяснений нормальных, помогите


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

Или воспользуйтесь поиском по форуму:
46
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru