Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 11.09.2013
Сообщений: 85

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

29.11.2013, 20:55. Показов 576. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
type
  Student = record
    name: string;
    age: integer;
    group: string;
  end;
 
label nach;
var
  str, vr: string;
  info: file;
  a: integer;
  st: student;
  rorw: char;
 
begin
  nach:
  assign(info, 'info.txt');
  writeln('Чтение журнала или запись? (Чтение/Запись)');
  readln(rorw);
  case rorw of
    'Ч': 
      begin
        reset(info);
        writeln('Возраст:   Группа:   Имя: ', filesize(info));
        repeat
          read(info, st);
          write(st.age:8);
          write(st.group:7);
          writeln(st.name:12);
        until eof(info) = false
      end;
    'З':
      begin
        assign(info, 'info.txt');
        rewrite(info);
        repeat
          begin
            write('Введите возраст учащегося: ');
            readln(st.age);
            write('Введите группу учащегося: ');
            readln(st.group);
            write('Введите имя учащегося: ');
            readln(st.name);
            writeln('Завершить? (Да/Нет)');
            readln(vr);
            write(info, st);
          end;
        until vr = 'Да';
        close(info);
      end;
  end;
  writeln('Завершить программу? (Да/Нет)');
  readln(vr);
  if vr = 'Нет' then  goto nach else exit;
end.
В файл записывается только одна строка (или читается), как это исправить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.11.2013, 20:55
Ответы с готовыми решениями:

Помогите найти ошибку
Помогите пожалуйста отыскать ошибку в программе УСЛОВИЕ: Необходимо протабулировать функцию с помощю for но в ответе от выдает...

Помогите найти ошибку в коде
вот программа: program modullab23; uses crt, SaveFamGroup23; type mas=array of real; var m:mas; fill:text; x:real; ...

Помогите найти ошибку в программе и исправить её
Program Monte_Carlo; uses crt; var n,i,j,alfa:integer; ...

7
0 / 0 / 3
Регистрация: 29.11.2013
Сообщений: 11
29.11.2013, 22:01
В файл записывается СТРУКТУРА (запись), а не строчки.
0
2 / 2 / 1
Регистрация: 11.09.2013
Сообщений: 85
29.11.2013, 22:02  [ТС]
Цитата Сообщение от divix Посмотреть сообщение
В файл записывается СТРУКТУРА (запись), а не строчки.
Как это реализовать?
0
0 / 0 / 3
Регистрация: 29.11.2013
Сообщений: 11
29.11.2013, 22:08
Цитата Сообщение от Vol4_OK Посмотреть сообщение
Как это реализовать?
Это уже реализовано и поэтому в файле такая вот непонятная вещь (кстати, я надеюсь что для просмотра файла ты используешь не стандартный блокнот Windows).
Если хочешь, чтобы записывалось в читаемом виде (по строчкам), то нужно записывать все строчки, т.е. Writeln(file, 'Строка1'); Writeln(file, 'Строка2); и читать из файла также (вообще, есть принцип - как писал в файл, так и читай из него) - Readln(file, str1); Readln(file, str2);
0
2 / 2 / 1
Регистрация: 11.09.2013
Сообщений: 85
29.11.2013, 22:45  [ТС]
В типизированном файле нету строк, мне нужно, что-бы выводилось столько данных, сколько я ввёл.
0
0 / 0 / 3
Регистрация: 29.11.2013
Сообщений: 11
29.11.2013, 23:10
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
type
  Student = record
    name, group:string;
    age:integer;
  end;
  
var
  st:Student;
  f:file;
  str:string;
  i:integer;
begin
  repeat
    assign(f, 'info.txt');
    reset(f);
    
    Writeln('1. Чтение');
    Writeln('2. Запись');
    Readln(i);
    case i of
      1:
      begin  
        Read(f, st);
        Writeln('Имя студента: ', st.name);
        Writeln('Группа студента: ', st.group);
        Writeln('Возраст студента: ', st.age);
      end;
      2:
      begin
        Writeln('Введите данные для записи:');
        
        Write('Имя студента: ');
        Readln(str);
        st.name:=str;
        
        Write('Группа студента: ');
        Readln(str);
        st.group:=str;
        
        Write('Возраст студента: ');
        Readln(i);
        st.age:=i;
        
        Write(f, st);
        Writeln('Студент добавлен!');
      end;
    end;
    
    Close(f);
  
    Writeln('Завершить программу(Да/Нет)?');
    Readln(str);
  until str = 'Да';
end.
Добавлено через 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
type
  Student = record
    name, group:string;
    age:integer;
  end;
  
var
  st:Student;
  f:file;
  str:string;
  i:integer;
begin
  repeat    
    assign(f, 'info.txt');
    reset(f);
    
    Writeln('1. Чтение');
    Writeln('2. Запись');
    Readln(i);
    
    case i of
      1:
      begin
        while not eof(f) do
        begin
          Read(f, st);
          Writeln('Имя студента: ', st.name);
          Writeln('Группа студента: ', st.group);
          Writeln('Возраст студента: ', st.age);
          Writeln();
        end;
      end;
      2:
      begin
        Seek(f, FileSize(f));
        Writeln('Введите данные для записи:');
        
        Write('Имя студента: ');
        Readln(str);
        st.name:=str;
        
        Write('Группа студента: ');
        Readln(str);
        st.group:=str;
        
        Write('Возраст студента: ');
        Readln(i);
        st.age:=i;
        
        Write(f, st);
        Writeln('Студент добавлен!');
      end;
    end;
    Close(f);
  
    Writeln('Завершить программу(Да/Нет)?');
    Readln(str);
  until str = 'Да';
end.
0
2 / 2 / 1
Регистрация: 11.09.2013
Сообщений: 85
30.11.2013, 07:47  [ТС]
Цитата Сообщение от divix Посмотреть сообщение
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
type
  Student = record
    name, group:string;
    age:integer;
  end;
  
var
  st:Student;
  f:file;
  str:string;
  i:integer;
begin
  repeat
    assign(f, 'info.txt');
    reset(f);
    
    Writeln('1. Чтение');
    Writeln('2. Запись');
    Readln(i);
    case i of
      1:
      begin  
        Read(f, st);
        Writeln('Имя студента: ', st.name);
        Writeln('Группа студента: ', st.group);
        Writeln('Возраст студента: ', st.age);
      end;
      2:
      begin
        Writeln('Введите данные для записи:');
        
        Write('Имя студента: ');
        Readln(str);
        st.name:=str;
        
        Write('Группа студента: ');
        Readln(str);
        st.group:=str;
        
        Write('Возраст студента: ');
        Readln(i);
        st.age:=i;
        
        Write(f, st);
        Writeln('Студент добавлен!');
      end;
    end;
    
    Close(f);
  
    Writeln('Завершить программу(Да/Нет)?');
    Readln(str);
  until str = 'Да';
end.
Добавлено через 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
type
  Student = record
    name, group:string;
    age:integer;
  end;
  
var
  st:Student;
  f:file;
  str:string;
  i:integer;
begin
  repeat    
    assign(f, 'info.txt');
    reset(f);
    
    Writeln('1. Чтение');
    Writeln('2. Запись');
    Readln(i);
    
    case i of
      1:
      begin
        while not eof(f) do
        begin
          Read(f, st);
          Writeln('Имя студента: ', st.name);
          Writeln('Группа студента: ', st.group);
          Writeln('Возраст студента: ', st.age);
          Writeln();
        end;
      end;
      2:
      begin
        Seek(f, FileSize(f));
        Writeln('Введите данные для записи:');
        
        Write('Имя студента: ');
        Readln(str);
        st.name:=str;
        
        Write('Группа студента: ');
        Readln(str);
        st.group:=str;
        
        Write('Возраст студента: ');
        Readln(i);
        st.age:=i;
        
        Write(f, st);
        Writeln('Студент добавлен!');
      end;
    end;
    Close(f);
  
    Writeln('Завершить программу(Да/Нет)?');
    Readln(str);
  until str = 'Да';
end.
Вы проверяли код? Он выдаёт ошибку: Нельзя читать после конца файла.
0
0 / 0 / 3
Регистрация: 29.11.2013
Сообщений: 11
04.12.2013, 19:57
Цитата Сообщение от Vol4_OK Посмотреть сообщение
Вы проверяли код? Он выдаёт ошибку: Нельзя читать после конца файла.
Программа работает, ошибки нету. Может старый файл не удален?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.12.2013, 19:57
Помогаю со студенческими работами здесь

Помогите найти ошибку в программе и исправить ее
program laba5; uses wincrt; var t:string; w,max,i,n:byte; begin writeln('Vvodim stroku'); read(t); n:=length(t); w:=1; ...

Помогите найти ошибку,не выводит группы с отличниками
помогите найти ошибку,не выводит группы с отличниками uses crt; type student=record surname:string; group:string; marks:array ...

Вывести все трехзначные числа которые делятся и на 3 и на 5 и на 6. Помогите найти ошибку
uses crt; var a: array of integer; i: integer; begin for i:=100 to 999 do begin if a mod 3=0 and a mod 5=0...

Программа пишет ошибку!! Помогите найти ошибку
Program Summa; var i, N, M: integer; begin Writeln ('Введите значение N:'); Read (N); M:=0; For i:=1 To N ...

помогите найти ошибку
Дана последовательность действительных чисел a1, a2, ..., an. Найдите сумму первых чисел, произведение которых меньше заданного числа b. ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru