Форум программистов, компьютерный форум, киберфорум
Наши страницы
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
mrflo
3 / 3 / 3
Регистрация: 17.11.2012
Сообщений: 40
1

Дневник давления

23.06.2013, 17:09. Просмотров 723. Ответов 10
Метки нет (Все метки)

с горем пополам освоил типизированные файлы
теперь текстовые
не работает процедура reportin, в 77 строке выдаёт ошибку Нельзя преобразовать тип string к integer
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
program pressure;
 
type
  rec = record
    day: string[10];
    sys: byte;
    dia: byte;
  end;
 
var
  base: file of rec;
  report: text;
  temp: rec;
 
procedure addrec;
begin
  with temp do
  begin
    writeln('введите дату ДД.ММ.ГГ');
    readln(day);
    writeln('введите систолическое давление');
    readln(sys);
    writeln('введите диастолическое давление');
    readln(dia);
  end;
end;
 
procedure rectofile;
begin
  if fileexists('C://pressure.base') then
  begin
    reset(base);
    seek(base, filesize(base));
    write(base, temp);
  end
    else
  begin
    rewrite(base);
    write(base, temp);
  end;
end;
 
procedure addrecfull;
var
  a: char;
begin
  repeat ;                                                                      
    begin
      addrec; 
      rectofile;
      write('ещё?(y/n): ');
      readln(a);                                                                
    end;
  until (a = 'n') or (a = 'N');
end;
 
procedure screenoutput;
begin
  reset(base); 
  writeln('I------------I--------I');
  writeln('I    ДАТА    I  А.Д.  I');
  writeln('I------------I--------I');
  while not eof(base) do
  begin
    read(base, temp);
    with temp do
    begin
      writeln('I ', day, ' I ', sys, '/', dia, ' I');
      writeln('I------------I--------I');
    end;
  end;
end;
 
procedure reportin;
begin
  reset(base); 
  writeln(report: 'I------------I--------I');
  writeln(report: 'I    ДАТА    I  А.Д.  I');
  writeln(report: 'I------------I--------I');
  while not eof(base) do
  begin
    read(base, temp);
    with temp do
    begin
      writeln(report: 'I ', day, ' I ', sys, '/', dia, ' I');
      writeln(report: 'I------------I--------I');
    end;
  end;
end;
 
procedure menu;
var
  answer: char;
begin
  writeln('n - новая запись, o - вывод на экран, e - выход, g - создание отчёта');
  readln(answer);
  case answer of
    'o', 'O': screenoutput;
    'n', 'N': addrecfull;
    'g', 'G': reportin;
    'e', 'E': halt(1);
  end;
end;
 
begin
  assign(base, 'C://pressure.base');
  assign(report, 'C://pressure.txt');
  menu;
  readln;
end.
по книжкам вроде вывод в файл работает так, но книжки по трубопаскалю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2013, 17:09
Ответы с готовыми решениями:

Вычисление давления столба жидкости плотностью R высотой H на дно сосуда
Составьте программу для вычисления давления столба жидкости плотностью R...

датчик давления ms5611 - зависимость давления от U питания
Датчик давления MS5611 работает в компании с PIC24F32КА301 и GPS модулем. МК...

Дневник оборотня
Короче есть таблица: Пон: ел пиццу +, Вт: ел пиццу -,Сред: ел борщ +,Чт: ел Суп...

Онлайн дневник
Люди помогите найти или у кого есть движок для школьного онлайн дневника очень...

Сайт-дневник
Всем привет!Не знал,в какой раздел написать по моему вопросу,поэтому написал...

10
Puporev
Модератор
55014 / 42308 / 29214
Регистрация: 18.05.2008
Сообщений: 99,972
23.06.2013, 17:26 2
Врешь ты все, исправь везде на это
Pascal
1
writeln(report, 'I------------I--------I');
1
mrflo
3 / 3 / 3
Регистрация: 17.11.2012
Сообщений: 40
23.06.2013, 17:28  [ТС] 3
так через запятую перечисление выводимого идёт вроде как
UPD: исправил на запятые, воткнул создание отчёта, он меня выкинул в модуль PABCSystem
PABCSystem.pas(3187) : Ошибка времени выполнения: Ссылка на объект не указывает на экземпляр объекта.
с самим же кодом вроде всё нормально
0
Puporev
Модератор
55014 / 42308 / 29214
Регистрация: 18.05.2008
Сообщений: 99,972
23.06.2013, 17:29 4
Запись строк в текстовый файл
Pascal
1
writeln(f,s);
Добавлено через 29 секунд
где
Pascal
1
2
f:text;
s:string;
1
mrflo
3 / 3 / 3
Регистрация: 17.11.2012
Сообщений: 40
23.06.2013, 17:56  [ТС] 5
так почему не функционирует?
0
Puporev
Модератор
55014 / 42308 / 29214
Регистрация: 18.05.2008
Сообщений: 99,972
23.06.2013, 18:07 6
Цитата Сообщение от mrflo Посмотреть сообщение
так почему не функционирует?
Что не функционирует?
Я везде исправил запись в файл, программа стала работать, ну а что она там делает, не разбирался.
0
mrflo
3 / 3 / 3
Регистрация: 17.11.2012
Сообщений: 40
23.06.2013, 18:35  [ТС] 7
в модуль не выбрасывает?
0
Puporev
Модератор
55014 / 42308 / 29214
Регистрация: 18.05.2008
Сообщений: 99,972
23.06.2013, 18:38 8
Вот код программы, ничего не вводил, просто проверил что компилируется.
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
program pressure;
 
type
  rec = record
    day: string[10];
    sys: byte;
    dia: byte;
  end;
 
var
  base: file of rec;
  report: text;
  temp: rec;
 
procedure addrec;
begin
  with temp do
  begin
    writeln('введите дату ДД.ММ.ГГ');
    readln(day);
    writeln('введите систолическое давление');
    readln(sys);
    writeln('введите диастолическое давление');
    readln(dia);
  end;
end;
 
procedure rectofile;
begin
  if fileexists('C://pressure.base') then
  begin
    reset(base);
    seek(base, filesize(base));
    write(base, temp);
  end
    else
  begin
    rewrite(base);
    write(base, temp);
  end;
end;
 
procedure addrecfull;
var
  a: char;
begin
  repeat ;
    begin
      addrec;
      rectofile;
      write('ещё?(y/n): ');
      readln(a);
    end;
  until (a = 'n') or (a = 'N');
end;
 
procedure screenoutput;
begin
  reset(base);
  writeln('I------------I--------I');
  writeln('I    ДАТА    I  А.Д.  I');
  writeln('I------------I--------I');
  while not eof(base) do
  begin
    read(base, temp);
    with temp do
    begin
      writeln('I ', day, ' I ', sys, '/', dia, ' I');
      writeln('I------------I--------I');
    end;
  end;
end;
 
procedure reportin;
begin
  reset(base);
  writeln(report, 'I------------I--------I');
  writeln(report, 'I    ДАТА    I  А.Д.  I');
  writeln(report, 'I------------I--------I');
  while not eof(base) do
  begin
    read(base, temp);
    with temp do
    begin
      writeln(report, 'I ', day, ' I ', sys, '/', dia, ' I');
      writeln(report, 'I------------I--------I');
    end;
  end;
end;
 
procedure menu;
var
  answer: char;
begin
  writeln('n - новая запись, o - вывод на экран, e - выход, g - создание отчёта');
  readln(answer);
  case answer of
    'o', 'O': screenoutput;
    'n', 'N': addrecfull;
    'g', 'G': reportin;
    'e', 'E': halt(1);
  end;
end;
 
begin
  assign(base, 'C://pressure.base');
  assign(report, 'C://pressure.txt');
  menu;
  readln;
end.
0
mrflo
3 / 3 / 3
Регистрация: 17.11.2012
Сообщений: 40
23.06.2013, 18:43  [ТС] 9
попробуй отчёт сделать
0
Puporev
Модератор
55014 / 42308 / 29214
Регистрация: 18.05.2008
Сообщений: 99,972
23.06.2013, 18:44 10
А он мне нужен? Ты спросил
Цитата Сообщение от mrflo Посмотреть сообщение
не работает процедура reportin, в 77 строке выдаёт ошибку Нельзя преобразовать тип string к integer
Я ответил
0
mrflo
3 / 3 / 3
Регистрация: 17.11.2012
Сообщений: 40
23.06.2013, 18:51  [ТС] 11
Цитата Сообщение от mrflo Посмотреть сообщение
так через запятую перечисление выводимого идёт вроде как
UPD: исправил на запятые, воткнул создание отчёта, он меня выкинул в модуль PABCSystem
PABCSystem.pas(3187) : Ошибка времени выполнения: Ссылка на объект не указывает на экземпляр объекта.
с самим же кодом вроде всё нормально
а мне нужно чтобы не выкидывало
0
23.06.2013, 18:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2013, 18:51

Школьный дневник
В общем, доброго времени суток. Нужно используя html+css сделать просто...

Дневник оборотня
есть таблица: Пон: ел пиццу +, Вт: ел пиццу -,Сред: ел борщ +,Чт: ел Суп -,Пт:...

Пишу дневник
Пишу программу Дневник. Где и в каком виде лучше хранить логин и пароль...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru