Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 05.09.2013
Сообщений: 112
1

Работа с файлами

31.05.2016, 18:19. Показов 1234. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть один созданный файл с именами клиентов. Необходимо создать второй файл с 3-мя записями, при этом, чтобы в записи "Номер клиента" было число, соответствующее порядковому номеру имени клиента из 1-го файла, т.е. предусматривалась проверка, что такой клиент вообще существует в файле 1. Как это организовать?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2016, 18:19
Ответы с готовыми решениями:

Работа с файлами , хотелось бы с windows system файлами
всем привет, нужна интересная идея по программированию, работа с файлами , хотелось бы с windows...

Работа с файлами(Запись,чтение,работа с данными)
Здравствуйте, никак не могу осилить файлы... Для начала вот само задание: В справочной автовокзала...

Лабораторная работа №5. Работа с файлами и алгоритмы сортировки
1. Написать функцию Load для считывания из текстового файла (например, Workers.txt) информации о...

Работа с файлами, чтение/работа со строкой
Доброго времени суток. Начал работать с C++ Builder 6. Есть текстовый файл .txt с различными...

13
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,077
Записей в блоге: 1
01.06.2016, 22:03 2
Непонятно, неоднозначное какое-то задание.
Попробуйте привести точный текст задания или непротиворечивое описание.
0
0 / 0 / 1
Регистрация: 05.09.2013
Сообщений: 112
03.06.2016, 14:25  [ТС] 3
Даны 2 файла с записями:
Файл 1: Запись с фамилиями и инициалами клиентов (строка).
Файл 2: 3 записи: 1)...... 2)....... 3) Номер клиента - число совпадающее с номером элемента из Файла 1

То есть, клиенту, фамилия которого является первой записью в файле 1, соответствует номер 1 из файла 2 и т.д. А если клиентов в 1-м файле меньше, чем введённый номер во 2-м файле, то, соответственно, надо вывести ошибку.
0
0 / 0 / 1
Регистрация: 05.09.2013
Сообщений: 112
05.06.2016, 17:06  [ТС] 4
Моя задача не решаема, как я понял?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,077
Записей в блоге: 1
05.06.2016, 23:27 5
См. сообщение #2 темы, от вашего дополнения понятнее не стало.
0
0 / 0 / 1
Регистрация: 05.09.2013
Сообщений: 112
06.06.2016, 00:23  [ТС] 6
С какого момента конкретно не понятно?
0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
06.06.2016, 06:15 7
Alexkiller,
1. посчитать число строк в первом файле и во втором, если не совпадает, значит извините
2. во втором файле есть "поле" номер клиента, если строки с таким порядковым номером нет в первом файле, значит ошибка.
Я правильно понял?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,077
Записей в блоге: 1
06.06.2016, 17:29 8
Цитата Сообщение от Alexkiller Посмотреть сообщение
С какого момента конкретно не понятно?
Файл 1: Запись {ед.ч. -- одна штука} с фамилиями и инициалами клиентов (строка) {зачем в одной записи более одного клиента?}.
Файл 2: 3 записи {каких?}, номер клиента -- порядковый номер из файла 1 {там же одна запись?}
А если клиентов в 1-м файле меньше, чем введённый номер во 2-м файле, то, соответственно, надо вывести ошибку. {А если ошибки нет, то делать ничего не надо вовсе? Что вообще нужно сделать?}
0
0 / 0 / 1
Регистрация: 05.09.2013
Сообщений: 112
06.06.2016, 21:34  [ТС] 9
Файл 1: Состоит из записей, содержащих ФИО клиентов (тип записей - string);
Файл 2: Состоит из записей: 1) дата покупки (ггггммчч) - (тип - string); 2) Сумма покупки (тип - real); 3) Номер клиента, который совершает эту самую покупку (тип - integer).
Допустим, мы заполнили 1 файл 10-ю записями. Во втором файле каждый номер клиента должен соответствовать какому либо ФИО клиента, то есть он должен быть не больше 10, так как у нас всего 10 клиентов в 1-м файле. Если ошибки нет, то делать ничего не надо, если номер выходит за максимальное число клиентов (в нашем случае - 10, ну и, естественно, номер клиента должен быть больше или равен 1), то вывести ошибку и организовать повторный ввод номера клиента.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,077
Записей в блоге: 1
06.06.2016, 21:47 10
Файлы текстовые или типизированные?
0
0 / 0 / 1
Регистрация: 05.09.2013
Сообщений: 112
06.06.2016, 21:48  [ТС] 11
Цитата Сообщение от Joy Посмотреть сообщение
1. посчитать число строк в первом файле и во втором, если не совпадает, значит извините
Не совсем так, клиент может совершить более одной покупки (если мы друг друга поняли).
Цитата Сообщение от Joy Посмотреть сообщение
2. во втором файле есть "поле" номер клиента, если строки с таким порядковым номером нет в первом файле, значит ошибка.
Я правильно понял?
Да, это то, что нужно
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,077
Записей в блоге: 1
06.06.2016, 21:49 12
Если текстовые, во втором файле запись на одной строке или на 3-х (на 3-х проще)?
0
0 / 0 / 1
Регистрация: 05.09.2013
Сообщений: 112
06.06.2016, 21:49  [ТС] 13
Типизированные
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,077
Записей в блоге: 1
06.06.2016, 22:45 14
Лучший ответ Сообщение было отмечено Alexkiller как решение

Решение

Цитата Сообщение от Alexkiller Посмотреть сообщение
если номер выходит за максимальное число клиентов (в нашем случае - 10, ну и, естественно, номер клиента должен быть больше или равен 1), то вывести ошибку и организовать повторный ввод номера клиента
Это вы у файла-2 собрались переспрашивать?

Давно б уже задание выложили, чем тянуть кота за... хвост.

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
  TNameStr = String[31];
  TDate = String[8];
  TClient = record
    Name: TNameStr;
    {...}
  end;
  TPurchess = record
    Date: TDate;
    Value: Real;
    Client: Integer;
  end;
var
  fc: file of TClient;
  fp: file of TPurchess;
  Clients: array [1..10] of TClient;
  ClientCnt: Integer;
  p: TPurchess;
begin
  Assign(fc,'file1.bin'); Reset(fc);
  while not EoF(fc) and (ClientCnt<High(Clients)) do begin
    Inc(ClientCnt); Read(fc,Clients[ClientCnt]);
  end;
  Close(fc); {$I-}
  Assign(fp,'file2.bin'); Reset(fp);
  if IOResult<>0 then Rewrite(fp);
  Seek(fp,FileSize(fp));
  with p do
    repeat
      Write('Дата: '); ReadLn(Date);
      if Date='' then Break;
      Write('Сумма: '); ReadLn(Value);
      repeat
        Write('Номер клиента: '); ReadLn(Client);
        if (Client>=Low(Clients)) and (Client<=ClientCnt) then begin
          WriteLn('Клиент: ',Clients[Client].Name);
          Break;
        end else WriteLn('*** Ошибочный номер клиента');
      until False;
      if not (Date='') then Write(fp,p);
    until Date='';
  Close(fp);
end.
Добавлено через 19 минут
Вот только идентифицировать клиента по порядковому номеру записи в файле -- не очень хорошая идея.
1
06.06.2016, 22:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2016, 22:45
Помогаю со студенческими работами здесь

Работа с файлами
Как можно создавать файлы в цикле? Например, хочу создать 10 файлов в определенной директории.

Работа с файлами
как записать в файл такую строку: nsd asd vsd ads и как потом прочитать из файла эту же строку

Работа с файлами на С++
Как сохранить результат вычислений на текстовом файле? Я пробовал открыт текстовый файл в начале...

Работа с файлами
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace...

Работа с файлами C++
Доброго времени суток. Написал программу с выводом в файл, но она выводит совсем левое число,...

Работа с файлами
В массиве А 5х4 для каждой нечетной строки определить сумму элементов. Создать массив В, нечетные...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru