Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 7

Записать список record в файл

21.01.2011, 15:45. Показов 4091. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Нужно составить базу данных приборов с характеристиками, записать в файл используя записи, и произвести чтение из этого файла и вывести на экран таблицу приборов, и таблицу поиска по определённым параметрам (стоимость <100, диапазон рабочих температур -30<=диапазон рабочих температур<=20, Цвет белый или серый). Зарание спасибо.
вот код который у меня вышел что нужно исправить?

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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
program tabl;
uses crt;
type table=record
name:string[20];
   s:word; {stoimost'}
      G:byte; {Garantiya}
   T:record
    tn:integer;
    tk:integer;
    end; {Temperature}
   CV:string[6]; {Color}
   M:byte; {Massa}
   E:word; {Energy}
   V:real; {Objem}
   {IP:b,s;} {Istochnik pitaniya}
  end;
var spisok: array [1..20] of table;
   I,k: integer; f:text;
begin
ClrScr;
assign(f,'C:\price.txt');
 
   rewrite(f);
   k:=1;
   while k<=20 do
   begin
   for I:=1 to 20 do
   begin
   with spisok[i] do
   begin
 
      writeln('vvedite sved o', I , '-m pribore');
      writeln('nazvanie');
      write(f,'nazvanie - ');
      readln(name);
      writeln(f,name);
      writeln('stoimost');
      write(f,'stoimost - ');
      readln(s);
      writeln(f,s);
      writeln('Garantiya');
      write(f,'Garantiya - ');
      readln(G);
      writeln(f,G);
      writeln('Temperature');
      write(f,'Temperature - ');
      readln(t.tn);
      write(f,t.tn);
      readln(t.tk);
      write(f,' - ');
      writeln
      (f,t.tk);
      writeln ('Cvet');
      write (f,'Cvet - ');
      readln(CV);
      writeln(f,CV);
      writeln('Massa');
      write(f,'Massa - ');
      readln(M);
      writeln(f,M);
      writeln('Energy');
      write(f,'Energy - ');
      readln(E);
      writeln(f,E);
      writeln('Objem');
      write(f,'Objem - ');
      readln(V);
      writeln(f,V); k:=k+1;
          {  writeln ('IP');
      readln(IP); }
   end;
   end;
   end;
   writeln;
   writeln ('end');
   writeln ;
      for I:=1 to 1 do
      if spisok[I].s=100 then
      with spisok[I] do
         write(' S: ', s,' ',g,' ',t.tn,'-',t.tk);
         close(f);
         readln;
end.
Миниатюры
Записать список record в файл   Записать список record в файл  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.01.2011, 15:45
Ответы с готовыми решениями:

Записать в файл запись типа record
Записать в файл запись типа record, как это произвести в интернете не нашел объяснений нормальных, помогите

Файл: Записать список структур в файл
мне надо Массив записать в ФАЙЛ!!!!!! по заданию есть прога, её надо подредактировать, но это не суть главное чтоб там была работа с...

Записать список в файл
Имеется код, получающий список всех путей, каталогов и файлов. import os import pickle pdir = 'Z:/' s_way = s_dirs = s_files...

13
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
21.01.2011, 18:47
Цитата Сообщение от Xottabch Посмотреть сообщение
что нужно исправить?
А что не так работает? При всем уважении листать ваш код в поисках непонятно какой ошибки врядли кто-то захочет. Опишите проблему как можно точнее.
P.S. вы уверены в правильности строчки 77?
P.P.S. убедительная просьба в дальнейшем использовать теги языка Pascal. Так будет легче читать ваш код. Это в ваших же интересах.
1
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 7
22.01.2011, 01:08  [ТС]
Когда я пытаюсь записать в файл не в формате txt, а в file of table, выдаёт ошыбку, мне надо чтоб всё записывалось в файл .dat чтоб можна с него было считывать числа, и нужно вывести значения в виде таблицы как это сделать. а 77 строчка то поиск в базе, то в том вопроса нет.
0
 Аватар для use
180 / 180 / 81
Регистрация: 18.12.2010
Сообщений: 346
22.01.2011, 07:53
Типа так:
Pascal
1
2
3
4
5
6
7
8
var
  f: file of table;
 
....
  Assign(f,...);
  Rewrite(f);
  for i:=1 to n do write(f,spisok[i]);
  Close(f);
В файл записей нельзя писать отдельные поля, ТОЛЬКО ЗАПИСЬ ЦЕЛИКОМ. Так что выкини все те write'ы, которые были для текстового файла. Заполнил запись - записал ее. Никак иначе. Считывать тоже только целиком. И никаких writeln/readln, ессно - их просто нет для нетекстовых файлов.

И обрати внимание на замечание Хищника 2004. Цикл от 1 до 1 - это nonsense. Это должно тебе говорить, что что-то НЕ ТАК, как должно быть.
0
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 7
22.01.2011, 13:46  [ТС]
Спасибо.
Так правильно?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
assign(f,'C:\price1.dat');
   rewrite(f);
   k:=1;
   while k<=20 do
   begin
   for I:=1 to 20 do
   begin
   with spisok[i] do
   begin
      writeln('vvedite sved o', I , '-m pribore');
      writeln('nazvanie');
      readln(name);
..................................
 readln(IP);
      write(f,spisok[i]);
   end;
и какой тип выбрать для характеристики "источник питания", и как организовать поиск по диапазону температур (-30<=T<=20)

Pascal
1
2
 for I:=1 to 20 do
      if (spisok[I].s<100) and (spisok[i].T) and (как одновременно ещё и по цвету? ) then
И нужно вывести результаты в виде таблицы как на картинке вложение, как можно выристовать таблицу?)
0
 Аватар для use
180 / 180 / 81
Регистрация: 18.12.2010
Сообщений: 346
22.01.2011, 15:00
1. В целом правильно, но неясно, зачем тебе там цикл while по k.
2. Тип для источника питания тебе указан в задании (батарея, сеть).
3.
Pascal
1
      with spisok[i] do if (-30<=T) and (T<=30) and ((CV='белый') or (CV='бежевый с блестками')) then ...
4. Если предполагается работа в текстовом окне, то можно использовать символы псевдографики, но, насколько я помню, она конфликтует с русскими буквами. Можно рисовать линии просто симвлолами "-" и "|", например.
0
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 7
22.01.2011, 18:11  [ТС]
Спасибо, а что за символы псевдографики? Я буду использовать английские символы. можете привести пример кода с использованием "_, |"

Добавлено через 2 часа 48 минут
Как организовать чтение из файла для поиска
Code
1
2
3
4
 for I:=1 to 20 do
with spisok[i] do
if (s<100) and ((-30<=T.tn) and (T.tx<=30)) and ((CV='white') or (CV='black')) then
......
0
 Аватар для use
180 / 180 / 81
Регистрация: 18.12.2010
Сообщений: 346
22.01.2011, 21:10
Что-то в таком духе:
╫╒═══╬╥
Выполни примерно такой цикл:
Pascal
1
for i:=180 to 230 do write(Chr(i));
и увидишь их все. И поищи по форуму на слово "псевдографика"

Считай все записи в массив
Pascal
1
2
3
4
5
n:=0;
whilie not EoF(f) do begin
  read(f,spisok[n]);
  Inc(n)
end;
0
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 7
22.01.2011, 22:43  [ТС]
А потом как с масивом работать как он будет называться? а процедура Inc делает?
0
 Аватар для use
180 / 180 / 81
Регистрация: 18.12.2010
Сообщений: 346
23.01.2011, 03:41
Цитата Сообщение от Xottabch Посмотреть сообщение
А потом как с масивом работать как он будет называться? а процедура Inc делает?
1. spisok
2. n:= n+1
0
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 7
29.01.2011, 13:56  [ТС]
При считывании с файла (wile not Eof) выдаёт ошибка при проверке диапазона, что можно сделать?
Code
1
2
3
4
5
6
 reset(f);
         n:=0;
      while not EoF(f) do begin
  read(f,spisok[n]);
  Inc(n)
end;
А если добавляю
{$R-}
пишет файл не открыт.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
29.01.2011, 14:07
Pascal
1
2
3
4
5
6
reset(f);
n:=0;
while not EoF(f) do 
 begin
  Inc(n);
  read(f,spisok[n]);
0
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 7
29.01.2011, 14:13  [ТС]
Всёровно выдаёт ту же ошибку.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
29.01.2011, 14:15
В этом фрагменте кода сейчас ошибок нет, а так обращайтесь к экстрасенсам...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.01.2011, 14:15
Помогаю со студенческими работами здесь

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

Записать вложенный список в файл
Как можно записать вложенный список в файл? Допустим структура списка такая list = ] а в файле каждый подсписок должен быть на новой...

Записать список в типизированный файл
Необходимо записать с писок type TInf = string; {тип данных, который будет храниться в элементе списка} List=^TList; ...

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

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru