8 / 8 / 2
Регистрация: 23.09.2012
Сообщений: 427
1

Не получается считать данные из типизированного файла в массив записи

18.12.2012, 15:28. Показов 2676. Ответов 11
Метки нет (Все метки)

Очень прошу, помогите!

Считываю таким образом:
Pascal
1
2
3
4
5
6
7
8
9
Assign (f,'bil.txt');
 Reset(f);
  n:=0;
  while not Eof(f) do
    begin
      inc(n);
      read(f,bil[n]); 
    end;
  Close (f);
Но паскаль выделяет строку с END и говорит: Ошибка времени выполнения: Среда выполнения Common Language Runtime обнаружила недопустимую программу.
Что не так??? Что это за ошибка?

Если нужно, могу дать код всей программы.
Пишу программу в PascalABC.NET, а вопрос задаю сюда, т.к. здесь больше вероятность, что ответит кто-нибудь.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2012, 15:28
Ответы с готовыми решениями:

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

Не получается считать данные из файла
Здравствуйте! Мне надо создать базовый класс и два наследника, еще функцию типа virtual, причем...

Не получается считать данные с БД и перенести в массив
есть база данных, в столбце одно есть цены на товар. я на форму ставлю чекбокс и когда чекбокс...

Не получается считать из текстового файла данные о студентах и записать в структуру
Мне нужно написать программу которая на основе данных о студентах что-то считывает и выполняет....

11
Почетный модератор
64074 / 47485 / 32734
Регистрация: 18.05.2008
Сообщений: 115,185
18.12.2012, 15:52 2
Pascal
1
2
3
4
5
6
7
8
9
10
Assign (f,'bil.txt');
Reset(f);
n:=0;
while not Eof(f) do
 begin
  read(f,zap);
  inc(n);
  bil[n]:=zap;
 end;
Close (f);
0
8 / 8 / 2
Регистрация: 23.09.2012
Сообщений: 427
18.12.2012, 16:03  [ТС] 3
Спасибо большое, что ответили. Но теперь выделяет строку, где inc (n) и пишет ту же самую ошибку...
0
Почетный модератор
64074 / 47485 / 32734
Регистрация: 18.05.2008
Сообщений: 115,185
18.12.2012, 16:08 4
Либо n не объявлена, либо выкинь свою
Цитата Сообщение от NoviiMir Посмотреть сообщение
Common Language Runtime обнаружила недопустимую программу.
0
8 / 8 / 2
Регистрация: 23.09.2012
Сообщений: 427
18.12.2012, 16:11  [ТС] 5
n объявлена. Вот:

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
Const nmax=1000;
Type AB=record
        Pynkt: string [10];
        Nomer: string [5];
        Fio: string [15];
        date: record
          day: Integer;
          month: Integer;
          year: Integer;
        end;
     end;
Var
  i,n,k:integer; b: string [5];
  bil:array [1..nmax] of AB;
  f:file of AB;//типизированный файл записей
  zap: AB;
Begin
 
  Assign(f, '1.txt');
  Rewrite (f);
  Writeln('vvedite kol-vo biletov');
  Readln(n);
    for i:=1 to n do
    begin
      Writeln('bilet',i);
      Write('fio ');
       Readln(bil[i].fio);
      Write('data  '); 
       readln(bil[i].date.day,bil[i].date.month,bil[i].date.year);
      write ('nomer ') ; 
       readLn (bil[i].Nomer);
      write ('pynkt '); 
       ReadLn (bil[i].Pynkt);
      Write(f,bil[i]);
    end;
  Close(f);
  Reset(f);
  n:=0;
  while not Eof(f) do
    begin
      Read (f,zap);
      inc(n);
      bil[n]:=zap; //читаем записи из файла в массив
    end;
  Writeln('vvedite nomer dlia poiska');
  Readln(b);
  k:=0;
  for i:=1 to n do
  if bil[i].nomer=b then //если поле записи номер совпало
     begin
       Writeln(bil[i].fio,' ',bil[i].pynkt,' ',bil[i].nomer);//выводим
       k:=1;//фиксируем что билет есть
    end;
   if k=0 then write('Takogo bileta net!');
  Close(f);
 
end.
0
Почетный модератор
64074 / 47485 / 32734
Регистрация: 18.05.2008
Сообщений: 115,185
18.12.2012, 16:19 6
У меня в АВС.net все работает без ошибок
0
8 / 8 / 2
Регистрация: 23.09.2012
Сообщений: 427
18.12.2012, 16:25  [ТС] 7
тогда я вообще ничего не понимаю...

Добавлено через 4 минуты
может, тогда дело в самом паскале? такое может быть?
0
Почетный модератор
64074 / 47485 / 32734
Регистрация: 18.05.2008
Сообщений: 115,185
18.12.2012, 16:27 8
Может быть, у меня же работает.
0
8 / 8 / 2
Регистрация: 23.09.2012
Сообщений: 427
18.12.2012, 16:29  [ТС] 9
И что тогда делать?.. мне уже завтра сдавать, а я доделать из-за этой ошибки не могу...
0
Почетный модератор
64074 / 47485 / 32734
Регистрация: 18.05.2008
Сообщений: 115,185
18.12.2012, 16:44 10
У меня версия 1.8.0.488, где качал, не помню.
0
8 / 8 / 2
Регистрация: 23.09.2012
Сообщений: 427
18.12.2012, 16:48  [ТС] 11
можете на электронную почту кинуть?
0
Почетный модератор
64074 / 47485 / 32734
Регистрация: 18.05.2008
Сообщений: 115,185
18.12.2012, 16:59 12
Да скачай простой АВС

Добавлено через 5 минут
Если хочешь скину, я правда не уверен что тот дистрибутив, давай почту, лучше в личку.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2012, 16:59

Как считать данные с файла организовав их в записи
в файле есть некоторые данные. Как можно их считать с файла организовов в несколько записей?...

Не получается считать информацию из файла в 2-х мерный массив (С++)
Что-то не совсем праильно работает, да и подскажите как потом поменять местами столбики со строками...

Как считать данные из файла в массив?
Как считать данные из фала в массив, чтобы обращаться к строчкам можно было massiv(1) etc.

Как считать в массив данные из файла?
Программа по созданию файла и записи в него случайного количество чисел.Проблема состоит в том,что...


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

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

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