Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 11

Считать данные из текстового файла в массив записей

21.01.2013, 15:48. Показов 1883. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ выручайте, есть текстовый файл, в нем список студентов и их баллы за три модуля, выглядит примерно так:
Аношенко Г. 40 40 40
Ракаускайте К. 30 33 33
Терентьев М. 31 34 35
Хардин К. 50 50 50
надо это считать в массив записей. Загвозка в том что я фамилию читываю с помощью a[i].fio:=copy(s,1,pos('. ',s))
а потом он мне пишет что нельзя переменную стринг считать в integer
вот что я накалякал
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
type student = record a: string[20]; mod1, mod2, mod3: integer; end;
var a: array [0..99] of student;
    f:text; i,n,: integer; s:string;
begin
     assign(f,'D:\text.txt');
     reset(f);
     n:=0;
     while not eof(f)do
        begin
        n:=n+1;
        readln(f,s);
        a[n].a:=copy(s,1,pos('. ',s));
        a[n].mod1:=copy(s,1,pos(' ',s));
        a[n].mod2:=copy(s,1,pos(' ',s));
        a[n].mod3:=copy(s,1,pos(' ',s)); 
        end;
        close(f);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.01.2013, 15:48
Ответы с готовыми решениями:

Считать табличные данные из текстового файла в многомерный массив
Есть таблица данных вида: назвБолезнь1|симптомБолез1|назвЛекар1|250 названиеБолез2|симпБолезни2|назвЛекар3|10 назввание Болезни...

Считать с текстового файла строки и перевернуть их
Привет всем...помогите пожалуйста написать такую программку: программа должна считывать с текстового файла строки и переворачивать их...

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

5
11 / 11 / 7
Регистрация: 05.11.2011
Сообщений: 87
21.01.2013, 16:08
Потому что ты присваиваешь строку в виде допустим "40" к mod1, когда у него тип integer;
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
type
  student = record a: string[20]; mod1, mod2, mod3: string; end;
 
var
  a: array [0..99] of student;
  f: text; i, n: integer; s: string;
 
begin
  assign(f, 'D:\text.txt');
  reset(f);
  n := 0;
  while not eof(f) do
  begin
    n := n + 1;
    readln(f, s);
    a[n].a := copy(s, 1, pos('. ', s));
    a[n].mod1 := copy(s, 1, pos(' ', s));
    a[n].mod2 := copy(s, 1, pos(' ', s));
    a[n].mod3 := copy(s, 1, pos(' ', s)); 
  end;
  close(f);
end.
0
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 11
21.01.2013, 16:13  [ТС]
по заданию mod1 mod2 mod3 должны быть integer
0
11 / 11 / 7
Регистрация: 05.11.2011
Сообщений: 87
21.01.2013, 16:33
Если работаешь в турбо паскаль значит код будет:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
type
  student = record a: string[20]; mod1, mod2, mod3: integer; end;
 
var
  a: array [0..99] of student;
  f: text; i, n: integer; s: string;
 
begin
  assign(f, 'D:\text.txt');
  reset(f);
  n := 0;
  while not eof(f) do
  begin
    n := n + 1;
    readln(f, s);
    a[n].a := copy(s, 1, pos('. ', s));
    val(copy(s, 1, pos(' ', s)),a[n].mod1,a[n].mod1);
    val(copy(s, 1, pos(' ', s)),a[n].mod2,a[n].mod2);
    val(copy(s, 1, pos(' ', s)),a[n].mod3,a[n].mod3);
  end;
  close(f);
end.
Если же ABCPascal что я бы советовал то:
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
type
  student = record a: string[20]; mod1, mod2, mod3: integer; end;
 
var
  a: array [0..99] of student;
  f: text; i, n: integer; s: string;
 
begin
  assign(f, 'input.txt');
  reset(f);
  assign(output, 'output.txt');
  rewrite(output);
  n := 0;
  while not eof(f) do
  begin
    n := n + 1;
    readln(f, s);
    a[n].a := copy(s, 1, pos('.', s));
    s:= copy(s, pos('.', s)+2, length(s));
    a[n].mod1 := strtoint(copy(s, 1, pos(' ', s)));
    s:= copy(s, pos(' ', s)+1, length(s));
    a[n].mod2 := strtoint(copy(s, 1, pos(' ', s)));
    s:= copy(s, pos(' ', s)+1, length(s));
    a[n].mod3 := strtoint(copy(s, 1, pos(' ', s)));
  end;
  close(f);
end.
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
21.01.2013, 16:34
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var s1:string;
    c:integer;
.....................
while not eof(f)do
 begin
   readln(f,s);
   n:=n+1;
   a[n].a:=copy(s,1,pos('.',s));//фамилия и.
   delete(s,1,pos(' ',s));//удалим по пробел
   s1:=copy(s,1,pos(' ',s));//первая оценка
   val(s1,a[n].mod1,c); //в число
   delete(s,1,pos(' ',s));//удалим
   s1:=copy(s,1,pos(' ',s)); //вторая так же
   val(s1,a[n].mod2,c);
   delete(s,1,pos(' ',s));
   val(s,a[n].mod3,c); //остаток строки=3 оценка, после нее ничего не должно быть
 end;
close(f);
1
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 11
21.01.2013, 17:02  [ТС]
DK, спасибо, теперь буду ляпать туда сортировку пузырьком)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.01.2013, 17:02
Помогаю со студенческими работами здесь

Вывод записей из текстового файла
вот кусок программы для курсача type tinf=record NAME:string; {по условию} Year:integer; {по условию} Score:real; {по условию} ...

Считать матрицу из текстового файла, сформировать из нее вектор, отсортировать и изменить его по условиям
Уважаемые участники форума. Напишите, пожалуйста, программу.pas. Считать матрицу из текстового файла. Из ее элементов,...

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

Считать данные из текстового файла массива в массив
нужно считать данные из текстового файла в массив. в текстовом файле список детей

Считать из текстового файла исходные данные в массив и вычислить максимальное значение и его индексы
Задание 1. Считать из текстового файла f.txt исходные данные массив х(5*6) вычислить максимальное значение и его индексы. Результаты...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru