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

Типизированные файлы

07.12.2016, 18:23. Показов 1057. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна помощь с задачей: В файле f записей хранится следующая информация о товарах, имеющихся на складе: наименование товара, цена единицы товара, общая стоимость и количество. В файле записей g хранится информация о заказах: наименование товара и его количество. Обновить файл f с учетом отпущенных товаров в соответствии с заказами из файла g. Если товар отпущен полностью, запись о нем из файла f удаляется.
Делаю так:
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
Uses Crt;
type
    base = record
     nameid: string[3];
     k:integer;
    end;
 
    base2 = record
    nameid: string[3];
    k:integer;
 
    end;
 
 var
   f:file of base;
   s:base;
   i,j,n,m,h:integer;
   f2:file of base2;
   d:base2;          
 begin clrscr;
   Assign(f,'f.txt');  Assign(f2,'f2.txt'); Rewrite(f);Rewrite(f2); FileMode:=2;
 Writeln('write zakaz '); Readln(n);  Writeln('write sklad');Readln(m);
 
     for i:=1 to n do
     begin
     with s do begin
     Write('Write name ');
     Readln(nameid);
     Write('write k '); Readln(k);
     end;
     Write(f,s); end; Close(f);
 
     for i:=1 to m do
     begin
     with d do begin
     Write('Write name ');
     Readln(nameid);
     Write('write k '); Readln(k);
     end;
     Write(f2,d); end; Close(F2);
 
     Reset(f); Reset(f2);
     for i:=1 to n do begin
        Read(f,s);
        for h:=1 to m do begin
        Read(f2,d); j:=j+1;
 
      if s.nameid = d.nameid then begin
      if s.k = d.k then begin
      //тут
      end else begin  d.k:=d.k-s.k; //тут
    end;    end; end; end;  close(f2);Close(f);
         Reset(f2);
 
        for i:=1 to m do begin
        Read(f2,d);
        Writeln(d.nameid); Writeln(d.k);
        end;
 
    Close(f2);
 end.
Здесь f- файл с заказом. f2- файл с информацие о товарах на складе. Создал две записи т.к. позже они будут отличатся.
n- кол- во записей в файле с заказом. m - кол-во зап. склада.nameid - имя товара. k - его кол-во.
Собственно проблема в том что я не знаю как мне изменить строку, тоесть заменить старое значение d.k на новое. Или же удалить всю строку если d.k и s.k будут равны.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.12.2016, 18:23
Ответы с готовыми решениями:

Типизированные файлы
Создать файл F1, компонентами которого являются целочисленные массивы a1,.., a10, закрыть его. Затем считать массивы из файла и за-писать в...

Не типизированные файлы.
Доброго времени суток. Прошу проверить логику программы. Задание следующие: Создать не типизированный файл в поточной директории(в той...

Типизированные файлы
Дан файл,содержащий данные о выдаче книг в библиотеке. Он содержит дату выдачи,фамилию автора и тематику книги. Определить: a)день, в...

1
0 / 0 / 3
Регистрация: 14.07.2015
Сообщений: 104
08.12.2016, 18:57  [ТС]
В общем решил создать 3 файл. Получилось. Работает, правдо только если у меня по 1 записи там и там. Если пробую добавить в файл со складом(f2) чутть больше записей чем 1 то выходит ошибка с №100. Как я понял это попытка считать больше записей чем есть. Наверное я не совсем верно записываю в файлы данные или еще что...
В общем вот код. Надеюсь в этот раз ответ будет.
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
Uses Crt;
type
    base = record
     nameid: string[3];
     k:integer;
    end;
 
    base2 = record
     nameid: string[3];
     k:integer;
    end;
 
 var
   f:file of base;
   s:base;
   i,j,l:integer;
   f2:file of base2; f3:file of base2;
   d:base2;   n,m,k,h:integer;
 begin clrscr;
   Assign(f,'f.txt');  Assign(f2,'f2.txt'); Rewrite(f);Rewrite(f2);  FileMode:=2;
 Writeln('write zakaz '); Readln(n);  Writeln('write sklad');Readln(m);  Assign(f3,'f3.txt');  Rewrite(f3);Close(f3);
   j:=0;  l:=0;
     for i:=1 to n do
     begin
     with s do begin
     Write('Write name ');
     Readln(nameid);
     Write('write k '); Readln(k);
     end; seek(f,l);l:=l+1;
     Write(f,s); end; Close(f);
 
     for i:=1 to m do
     begin
     with d do begin
     Write('Write name ');
     Readln(nameid);
     Write('write k '); Readln(k);
     end;  seek(f2,j); j:=j+1;
     Write(f2,d); end; Close(F2);
 
     Reset(f); Reset(f2);  j:=0; l:=0;
      while not eof(f) do
  begin
        Read(f,s);l:=l+1;
        while not eof(f2) do
    begin
          Read(f2,d); j:=j+1;
          if s.nameid = d.nameid then
       begin
         if s.k <> d.k then
          begin
            Reset(f3);
            d.k:=d.k-s.k;
            Write(f3,d);
            Close(f3); seek(f2,j);
          end else seek(f2,j);
       end
        else
        begin reset(f3);Write(f3,d);Close(f3);seek(f2,j); end;seek(f,l);
    end;
   end;
        close(f2);Close(f);
 
         Reset(f3);
        for i:=1 to m do 
      begin
        Read(f3,d);
        Writeln(d.nameid); 
        Writeln(d.k);
       end;
 
         Close(f3);
 end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.12.2016, 18:57
Помогаю со студенческими работами здесь

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

типизированные файлы
Добрый ВЕЧЕР!Запарился с задачкой, помогите мне пожалуйста! Задан файл содержащий фамилию,группу и 3 оценки студентов. Найти...

Типизированные файлы
Ввести файл F1 . Записать в файл F2 компоненты файла F1 в обратном порядке. В каждом из файлов элемент, стоящий справа от максимума...

Типизированные файлы
Помогите с составлением кода по теме типизированные файлы. Тоже условие задачи по теме Записи(STRING) у меня есть. Как связать это с...

Типизированные файлы
Описать процедуру append(f,g,h) от трех типа char, которая записывает в файл f сначала все элементы из файла f, а затем – все элементы...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
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 с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru