Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
M9IC0
1

Помогите найти ошибку=/

05.03.2012, 15:53. Показов 516. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
type
  TData = record
    MCarBrand: string[25];           
    MModelOfCar: string[20];        
  end;
 
  PTBase = ^TBase;                   
 
  TBase = record
    MData: Tdata;
    next: PTBase                  
  end;
 
var
  head: PTBase;                    
  f: file of PTBase;               
{------------------------------------------------------------------------------}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
 
  node: PTBase;   
  curr: PTBase;   
  pre: PTBase;     
begin
  new(node); 
 
  node^.MData.MCarBrand := Edit1.Text;               
  node^.MData.MModelOfCar := Edit2.Text;             
 
  curr := head;
  pre := NIL;
 
  while (curr <> NIL) and (node^.MData.MCarBrand > curr^.MData.MCarBrand) do
    begin
      pre := curr;
      curr := curr^.next
    end;
 
  if pre = NIL
    then
      begin
        node^.next := head;
        head := node
      end
    else
      begin
        node^.next := pre^.next;
        pre^.next := node
      end;
 
  Edit1.text := '';
  Edit2.text := '';
 
  Edit1.SetFocus;
 
  AssignFile(f, 'C:\111.db');
  Reset(f);
  Seek(f, 0);
  curr := head;
  while curr <> NIL do
    begin
     Write(f, curr^.MData);
      curr := curr^.next
    end;
  CloseFile(f);
  dispose(node)
end;
{------------------------------------------------------------------------------}
procedure TForm1.BitBtn2Click(Sender: TObject);
var
  curr: PTBase;
  n: integer;  
  st: string;   
begin
  n := 0;
  st := '';
  AssignFile(f, 'C:\111.db');
  Reset(f);
  Seek(f, 0);
  new(curr);
  while not EOF(F) do
    begin
      read(f, curr^.Mdata);
      with curr^ do
        begin
          n := n + 1;
          st := st + MData.MCarBrand + ' ' + MData.MModelOfCar + ' ' + #13;
        end;
      curr := curr^.next; 
    end;
  CloseFile(f);
  if n <> 0
    then ShowMessage('Список:' + #13 + st)
  else ShowMessage('В списке нет элементов.')
 
end;
{------------------------------------------------------------------------------}
end.
Добавлено через 58 секунд
проблема с вводом/выводом записей из файла..
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2012, 15:53
Ответы с готовыми решениями:

Помогите найти ошибку
Добрый день) мне необходимо найти в массиве (в StringGrid в последнем столбце) все максимальные...

Помогите найти ошибку
прошу оказать содействие в исправлении ошибки. При запуске программы дает ошибку неверного пути к...

Помогите найти ошибку
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Помогите найти ошибку
//12. Даны действительные числа a1, a2, …an. Поменять местами наибольший и наименьший элементы....

3
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
05.03.2012, 15:55 2
Какую ошибку?

Не по теме:

Ага, включаем встроенный в голову проверятель, видим, ошибка есть....где то между первой и последней строчкой....


Что неверно, ошибка компилирования, ошибка выполнения, неверный результат?
0
M9IC0
05.03.2012, 15:58 3
ошибка компилирования! Если из оператора read(f, curr^.Mdata) убрать ^.Mdata, то нормально компилируется, но при работе выскакивает ошибка или выдается левый рез-т.
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
06.03.2012, 01:40 4
Во-первых у тебя ошибка с записем в файл. У тебя стоит процедура на чтение , а ты пытаешься его записать
Delphi
1
2
3
4
5
6
7
8
9
10
AssignFile(f, 'C:\111.db');
  Reset(f);                   // замени на ReWrite() или Append()
  Seek(f, 0);
  curr := head;
  while curr <> NIL do
    begin
     Write(f, curr^.MData);
      curr := curr^.next
    end;
  CloseFile(f);
Второе. Если ты записываешь в файл и считываешь из него только запись TData, то и файловую переменую сделай TData.
Delphi
1
f: file of TData;
0
06.03.2012, 01:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2012, 01:40
Помогаю со студенческими работами здесь

помогите найти ошибку
помогите найти ошибку пожалуйста,че та не вижу где она может быть procedure TGetMsg.add; begin...

помогите найти ошибку
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Помогите пожалуйста найти ошибку!!!!
procedure TForm1.Button1Click(Sender: TObject); Var P,p1:extended; Var i: integer; begin...

Помогите найти ошибку в коде
unit Kvadrat; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Помогите найти ошибку в коде
Procedure Print_points (a:matr;i:integer;result:integer); Var j:integer; Procedure...

помогите найти ошибку в Delphi 7!!!
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru