Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Shura_deg
82 / 18 / 5
Регистрация: 01.02.2015
Сообщений: 658
1

Разбиение файла на массив данных

18.03.2017, 01:04. Просмотров 201. Ответов 4
Метки нет (Все метки)

Доброго времени суток уважаемые форумчане!
содержание файла (input)
n-количество клубов
назвКлуба(1) вид(1 1) вид(1 2) вид (1 k1)
назвКлуба(2) вид(2 1) вид(2 2) вид (1 k2)
...............................................................
назвКлуба(n) вид(n 1) вид(n 2) вид (n kn)

содержание файла (output)
-какие виды спорта культивируются во всех клубах
-какие виды спорта культивируются только в одном из них
-есть ли клуб, в котором занимаются видами спорта, культивируемыми хотя бы в одном из остальных клубов

Как поместить в массивы (в первый "названия клубов")(во второй "виды спорта") ??

(пример)
содержание файла (input)
2
викинг хоккей баскетбол
юность хоккей гандбол

содержание файла (input)
хоккей баскетбол гандбол
баскетбол гандбол
хоккей

Добавлено через 1 час 48 минут
Цитата Сообщение от Shura_deg Посмотреть сообщение
содержание файла (input)
хоккей баскетбол гандбол
баскетбол гандбол
хоккей
здесь это output

Добавлено через 5 минут
Delphi
1
2
3
4
type Sports = (Football, Hovkey);
var
       ssss: array[1..100] of set of Sports;
       names: array[1..100] of string;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2017, 01:04
Ответы с готовыми решениями:

Разбиение файла
Доброго вечера, форумчане! Я новенький в delphi и поэтому вопрос может быть...

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

Разбиение файла *.jpg на несколько частей
У меня есть изображение *.jpg. Как его можно разбить на несколько частей с...

Считывание данных из файла в массив.
Как сделать, чтобы при открытии файла все данные были считаны в массив и при...

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

4
Puporev
Модератор
55465 / 42572 / 29422
Регистрация: 18.05.2008
Сообщений: 100,714
18.03.2017, 08:28 2
Здесь нужен массив множеств.
Чтобы создать перечислимый тип для множеств нужно видеть файл. Да и вообще если Вы рассчитываете на готовое решение, то нужно приложить исходный файл.
1
Shura_deg
82 / 18 / 5
Регистрация: 01.02.2015
Сообщений: 658
18.03.2017, 21:32  [ТС] 3
Разбиение файла на массив данных
0
Shura_deg
82 / 18 / 5
Регистрация: 01.02.2015
Сообщений: 658
19.03.2017, 14:50  [ТС] 4
само задание:
В текстовом файле Inlet.in хранится значение количества имеющихся в городе (п) спортивных клубов, в которых занимаются различными игровыми видами спорта с мячом и информация о названии спортклубов и видов спорта, которые в них имеются. Определите, используя средства типа Set:

- какие виды спорта культивируются во всех клубах;

- какие виды спорта культивируются только в одном из них;

- есть ли клуб, в котором занимаются видами спорта, культивируемыми хотя бы в одном из остальных клубов.

Организуйте ввод клубов и культивируемых в нем видов спорта, а также вывод клубов, удовлетворяющих перечисленным выше требованиям. Результат решения задачи запишите в текстовый файл Outlet,out.

Замечания:

- Если список видов спорта в первой или второй строках вывода окажется пустым - в качестве ответа выдать No:

- Названия клубов рассматривать как переменные типа Char, а виды спорта - как переменные типа Byte.

Спецификация ввода (файл Inlet.in):

n
назвКлуба(1) вид(1 1) вид(1 2) вид (1 k1)
назвКлуба(2) вид(2 1) вид(2 2) вид (1 k2)
...............................................................
назвКлуба(n) вид(n 1) вид(n 2) вид (n kn)

Спецификация вывода (файл Outlet.out):

Список видов спорта, культивируемых во всех клубах Список видов спорта, культивируемых только в одном клубе Yes или No

Пример файла inlet.in (inlet.txt)

Delphi
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
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  Windows;
 
Type SpVid = (badminton,futbol,hokkei,fextovanie);
VAR  SpVids :Set Of SpVid;
     nameClub: array [1..10] of string;
     f:textfile;
     n,i,x2:integer;
     s,x1:string;
begin
  SetConsoleCP(1251);
  SetConsoleOutPutCP(1251);
  Assignfile(f,'inlet.in');
  reset(f);
  readln(f,s);
  n:=strtoint(s);
  i:=1;
    While not eof(f) do
    begin
    readln(f,s);
    nameClub[i]:=copy(s,1,pos(' ', s));
    i:=i+1;
    end;
end.
подскажите как разбить строку слов разделённых через пробел и внести эти слова во множество
например
машина дом кровать . занести эти слова во множество
0
Вложения
Тип файла: txt inlet.txt (49 байт, 0 просмотров)
Shura_deg
82 / 18 / 5
Регистрация: 01.02.2015
Сообщений: 658
19.03.2017, 21:24  [ТС] 5
сделал работает правильно ли ?
Delphi
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
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  Windows,
  Classes;
 
Type
     vids = set of byte;
 
VAR
     m:array[0..100] of vids; //massiv mnozestv
     nameKl:array[1..100] of string;
     per:vids;
     stroka : TStringList;
     f:textfile;
     n,i,j,k:integer;
     s:string;
     fs: TFileStream;
begin
  SetConsoleCP(1251);
  SetConsoleOutPutCP(1251);
 
  stroka := TStringList.Create;
  stroka.Delimiter:=' ';
 
  Assignfile(f,'inlet.in');
  reset(f);
  readln(f,s);
  n:=strtoint(s); //kolichestvo klubov
  j:=1;    //massiv imen klubov
  k:=0;   //massiv mnozestv
    While not eof(f) do
    begin
    readln(f,s);
    stroka.DelimitedText := s;
    nameKl[j]:=stroka[0];
    inc(j);
    for i := 1 to stroka.Count-1 do
    if strtoint(stroka[i]) in [0..255] then m[k]:=m[k]+[strtoint(stroka[i])];
    inc(k);
    end;
    close(f);
    //1 yslovie
    per:=[0..255];
    s:='';
      For i:=0 To n-1 Do Per:=Per*m[i];
      if per=[] then s:='No' else begin
      for I := 0 to 255 do if I in per then s:=s+' '+inttostr(I);
      end;
      s:=s+#13+#10;
    //2 yslovie
      per:=[];
      For i:=0 To n-1 Do per:=per+m[i];
      For i:=0 To n-1 Do per:=per-m[i];
      if per=[] then s:=s+'No' else begin
      for I := 0 to 255 do if I in per then s:=s+' '+inttostr(I);
      end;
    fs:=TFileStream.Create('outlet.txt', fmCreate);
  try
    fs.WriteBuffer(s[1],Length(s));
  finally
    fs.Free;
  end;
 
end.
0
Вложения
Тип файла: rar in2.rar (45.2 Кб, 0 просмотров)
19.03.2017, 21:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2017, 21:24

Вывод данных из нетипизированного файла в массив записей
Не подскажете как вывести данные нетипизированного файла в динамический массив...

Вывод данных из текстового файла сразу в Массив
Здравствуйте! Текстовый файл: txt - в нём содержится 1.000.000 записей в...

Алгоритм чтения текстового файла в массив данных открытого типа
Помогите написать алгоритм чтения текстового файла в массив данных открытого...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru