Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/26: Рейтинг темы: голосов - 26, средняя оценка - 4.88
 Аватар для Bogdand
4 / 4 / 0
Регистрация: 04.12.2010
Сообщений: 93

Считывание списка(record) из текстового файла.

04.12.2010, 12:11. Показов 5067. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание:
Редактором на диске создать файл со структурой:
I Наименование произв I Автор работы I Год издания I Инвентарный номер I
I А(20) I А(15) I 9(4) I X(10) I

Мне надо то что пользователь введет в блокноте с именем kat3.txt выдать на экран и вывести список произведений напечатанных до 1950 г.

Вод код программы:

type kat = record
pro: string [20];
avt: string [15];
god: word;
nom: word;
end;

var
a:array [1..100] of kat;
kat1:text;
i:byte;

begin

assign(kat1,'C:\Users\User\Desktop\Новая папка\kat3.txt');
reset(kat1);

while not eof(kat1) do begin
for i:=1 to 3 do
with a[i] do begin
read(kat1,pro,avt,god,nom);
writeln(pro,avt,god,nom)
end;
end;
close(kat1);

writeln('Список произведений до 1950 года');
for i:=1 to 3 do
with a[i] do
if god < 1950 then writeln (pro,avt,god,nom);

end.

Контрольный пример:
Ввод в блокнот -> Один Два 3 4

Проблема такова что он всю эту строку приписывает a[i].pro а мне надо чтобы присваивалось каждое слово новой подпеременной рекорд. И вот я не знаю как правильно считать такой файл.

Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.12.2010, 12:11
Ответы с готовыми решениями:

Считывание определенной строки текстового файла
Как с текстового файла считать строку с определенным номером? Нужно сместить файловый указатель? Подскажите какой функцией

Фopмиpование линейного списка из стpок текстового файла указанной стpуктуpы
Здравствуйте! Сдавать программирование, а программирую я пока почти никак - решила обратиться к вам за помощью. Тут наверное всё очень...

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

4
9 / 9 / 3
Регистрация: 29.11.2010
Сообщений: 40
04.12.2010, 15:16
У вас в задании сказано что файл должен быть .txt?
0
 Аватар для Bogdand
4 / 4 / 0
Регистрация: 04.12.2010
Сообщений: 93
04.12.2010, 15:36  [ТС]
Цитата Сообщение от BlackM666 Посмотреть сообщение
У вас в задании сказано что файл должен быть .txt?
Сказано редактором на диске создать файл со структурой

Добавлено через 51 секунду
а что тут уместен типизированный файл?
0
9 / 9 / 3
Регистрация: 29.11.2010
Сообщений: 40
04.12.2010, 16:04
Я б сделал через тф а так из тхт считывайте по строчкам как массив

Pascal
1
2
3
4
5
6
7
for i:=1 to 3 do
 with a[i] do begin
 readln(kat1,pro);
 readln(kat1,avt);
 readln(kat1,god);
 readln(kat1,nom);
 end;
И в конце так удобнее смотреть=)
Pascal
1
writeln (pro:21,avt:16,god:5,nom:11);
1
 Аватар для Bogdand
4 / 4 / 0
Регистрация: 04.12.2010
Сообщений: 93
04.12.2010, 16:19  [ТС]
Цитата Сообщение от BlackM666 Посмотреть сообщение
Я б сделал через тф а так из тхт считывайте по строчкам как массив

Pascal
1
2
3
4
5
6
7
for i:=1 to 3 do
 with a[i] do begin
 readln(kat1,pro);
 readln(kat1,avt);
 readln(kat1,god);
 readln(kat1,nom);
 end;
И в конце так удобнее смотреть=)
Pascal
1
writeln (pro:21,avt:16,god:5,nom:11);
да делал я так, сейчас попробую снова может тогда что ни так написал =)

Добавлено через 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
type kat  =  record
               pro: string [20];
               avt: string [15];
               god: word;
               nom: word;
             end;
 
var
       a:array [1..100] of kat;
       kat1:text;
       i:byte;
 
begin
 
assign(kat1,'C:\Users\User\Desktop\Íîâàÿ ïàïêà\kat3.txt');
reset(kat1);
 
while not eof(kat1) do   begin
 
      for i:=1 to 3 do
           with a[i] do  begin
                readln(kat1,pro);
                readln(kat1,avt);
                readln(kat1,god);
                readln(kat1,nom);
                writeln(pro,' I ',avt,' I ',god,' I ',nom,' I ');
                end;
 
                         end;
close(kat1);
 
writeln('Список произведений до 1950 года');
for i:=1 to 3 do
       with a[i] do
            if god < 1950 then writeln (pro,avt,god,nom);
 
end.
Это работает но текст в блокноте вот такой:
Один
Два
3
4
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.12.2010, 16:19
Помогаю со студенческими работами здесь

Создание списка терминов текстового файла
Входной файл – обычный текстовый файл. Термином называется слово, написанное прописными (большими) буквами. Читается текстовый файл и...

Формирование упорядоченного списка юбиляров (из текстового файла)
Написать программу формирования упорядоченного списка юбиляров. Список юбиляров дан в текстовом файле. Помогите мне пожалуйста:(

Разpаботать процедуpы: P1 - ввода списка слов из текстового файла F1 в двунапpавленный список с элементом
В текстовом файле F1 находится список слов (по одному на стpоке, не более 20 символов). разpаботать процедуpы: 1. P1 - ввода списка...

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru