Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 10.12.2017
Сообщений: 13

Считывание данных из файла в записи

04.05.2018, 06:01. Показов 940. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Файл состоит из записей о каждом студенте (фамилия, номер группы, оценки по трём предметам). Поля разделены знаком нижнего подчёркивания "_", а записи знаком тире "-". И нужно считать эти данные в массив из записей. Знаю, только как считать данные, находящиеся в отдельных строках, а как считать с разделителем "-" - понятия не имею.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.05.2018, 06:01
Ответы с готовыми решениями:

Запрос данных из файла. Проблема в открывании файла и считывание из него данных
Не понимаю что не так, программа не хочет открывать файл... Пробовал и перемещать его, и...

Добавление записи в базу данных и считывание из базы данных
Здравствуйте! Знаю, что эти вопросы поднимались уже тысячи раз, но помогите пожалуйста. Написала...

Считывание из файла записи переменной длины
Здравствуйте. Есть файл, содержащий следующий текст: 12-01-1800:151 721BWMTT B1 0 ...

1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.05.2018, 10:16
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Например так.
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
type stud=record
          fam:string[20];
          grp:integer;
          ocn:array[1..3] of byte;
          end;
var f:text;
    s:string;
    c:char;
    a:array[1..20] of stud;
    n,i,j:integer;
begin
assign(f,'1.txt');//файл в папке с программой
reset(f);
n:=0;
s:='';
while not eoln(f)do
 begin
  read(f,c);
  if c<>'-' then s:=s+c
  else
   begin
    inc(n);
    a[n].fam:=copy(s,1,pos('_',s)-1);
    delete(s,1,pos('_',s));
    a[n].grp:=strtoint(copy(s,1,pos('_',s)-1));
    delete(s,1,pos('_',s));
    s:=s+'_';
    for i:=1 to 3 do
     begin
      a[n].ocn[i]:=strtoint(copy(s,1,pos('_',s)-1));
      delete(s,1,pos('_',s));
     end;
     s:='';
   end;
 end;
close(f);
for i:=1 to n do
 begin
  write(a[i].fam,' ',a[i].grp,' ');
  for j:=1 to 3 do write(a[i].ocn[j],' ');
  writeln;
 end;
end.
Пример файла

Специально заузил окно чтобы было видно что при переносе строки не с помощью Enter все работает.
Результат
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.05.2018, 10:16
Помогаю со студенческими работами здесь

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

Считывание из текстового файла выборочных данных, сортировка данных по возрастанию и последующая запись в другой файл
Дан файл: 0.3000000E+01 0.1000000E+03 501 1 1 ...

Считывание данных с файла
Входные данные: на первой строке ширина N (N ≤ 500) и длина склада M (M ≤ 500) через...

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

Считывание данных из файла
Добрый день! Почти не знаю Матлаба и не могу найти в книгах. Требуется считать данные из файла,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru