Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2012, 17:05   #1
V1rus.25
Пользователь
 
Аватар для V1rus.25
 
Регистрация: 09.04.2012
Сообщений: 62
Печаль Использование файлового типа данных.

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

В итоге должно выйти что-то типа:
Введите марку автомобиля:
PORSHE
Найдено автомобилей:3
PORSHE 911 Номер12345 Иванов
PORSHE Boxster Номер 11234 Петров
PORSHE Cayenne Номер 11123 Сидоров
V1rus.25 вне форума Ответить с цитированием
Старый 08.05.2012, 17:19   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

ну ка поясните мне что такое
Цитата:
используя файловый тип данных.
?
Я знаю типизированные, текстовые, и [бинарные] файлы
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 08.05.2012, 17:24   #3
V1rus.25
Пользователь
 
Аватар для V1rus.25
 
Регистрация: 09.04.2012
Сообщений: 62
По умолчанию

Опис файлового типу складається з ключового слова file, за яким ідуть ключове слово of та опис типу елементів файла. Елементами файла можуть бути об’єкти довільного типу, крім файлового. Змінна файлового типу є досить специфічною. Її не можна використовувати у виразах та в операторах присвоєння. Файлова змінна ототожнюється з деяким фізичним файлом і потім у програмі лише визначає файл, над яким виконуються операції. Наприклад, в описі файлового типу var F_In: file of real; файлова змінна F_In зображає файл, елементи якого мають тип real.
Как мне кажется это больше похоже на текстовый тип.
V1rus.25 вне форума Ответить с цитированием
Старый 08.05.2012, 17:34   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

и называется это всё типизированные файлы!
Ну что же покажите каким образом вы пишите в файл свои данные, и как выглядит структура записи!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 08.05.2012, 17:35   #5
Paster Fob
Форумчанин
 
Аватар для Paster Fob
 
Регистрация: 06.02.2011
Сообщений: 105
По умолчанию

V1rus.25 Похожая программа есть в книге Песни о паскале глава 40,программа P_40_2,и глава 42 функция в начале главы.
Почитай,заодно разберёшься с кодом.
Paster Fob вне форума Ответить с цитированием
Старый 08.05.2012, 18:26   #6
V1rus.25
Пользователь
 
Аватар для V1rus.25
 
Регистрация: 09.04.2012
Сообщений: 62
По умолчанию

Да задачка похожая но я не могу понять как ее переделать под свою!!!

Вот тоже нашел похожую но только с номерами, а как переделать под марки не понимаю

Код:
function FindNumber(var aFile: text; aNumber: integer): boolean; 
            var N: integer; { текущий номер в БД } 
begin 
   FindNumber:= false;  { на случай, если файл пуст  } 
    Reset(aFile);  { позицию чтения устанавливаем в начало файла } 
    N:=0;   { в начале цикла задаем несуществующий номер } 
                       { читаем номера из файла, пока НЕ конец файла И номер НЕ найден } 
    while not Eof(aFile) and (N<>aNumber) do begin 
   Readln(aFile, N); 
  FindNumber:= (N=aNumber);  { true, если номер нашелся } 
end; 
end; 
 var F: text; Num: integer; 
  begin {----- Главная программа -----} 
   Assign(F, 'Police.txt'); 
    repeat 
    Write('Укажите номер автомобиля: ');  Readln(Num); 
   if FindNumber(F, Num) 
  then Writeln('Эта машина в розыске, хватайте его!') 
 else Writeln('Пропустите его'); 
until Num=0;  { 0 – признак завершения программы} 
Close(F); 
end.


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 09.05.2012 в 12:38.
V1rus.25 вне форума Ответить с цитированием
Старый 09.05.2012, 14:11   #7
V1rus.25
Пользователь
 
Аватар для V1rus.25
 
Регистрация: 09.04.2012
Сообщений: 62
По умолчанию

Люди хоть кто нибудь поможет с программой?

Последний раз редактировалось V1rus.25; 09.05.2012 в 17:25.
V1rus.25 вне форума Ответить с цитированием
Старый 09.05.2012, 19:03   #8
Paster Fob
Форумчанин
 
Аватар для Paster Fob
 
Регистрация: 06.02.2011
Сообщений: 105
По умолчанию

Используй строковый массив.Ну и наверное записи использовать.
Paster Fob вне форума Ответить с цитированием
Старый 09.05.2012, 19:44   #9
V1rus.25
Пользователь
 
Аватар для V1rus.25
 
Регистрация: 09.04.2012
Сообщений: 62
По умолчанию

Цитата:
Сообщение от Paster Fob Посмотреть сообщение
Используй строковый массив.Ну и наверное записи использовать.
просто не понимаю как
V1rus.25 вне форума Ответить с цитированием
Старый 09.05.2012, 21:35   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от V1rus.25 Посмотреть сообщение
просто не понимаю как
А мне, например, непонятно, что Вы не понимаете!

то, что эта задача на типизированные файлы, это Вы понимаете?

то, что типизированный файл описывается как
var xxxx : file of <ТипФайла>, это понимаете?

что в вашем случае типом файла должна быть структура - запись (record), и то, что Вы её должны описать в программе, это понимаете?

то, что Вы должны заполнить файл, это понимаете?

а по сути кусочек программы может выглядеть так:
Код:
type AutoRec = record 
  Marka : string[45];
  Nomer : string[15];
  Vladelec : string[45];
end;

var
   sFind : string;
   OneAuto : AutoRec;
   f : file of AutoRec;
   countA : integer;
begin
   WriteLn('Введите марку авто:');
   Readln(sFind);

   Assign(f, 'ИмяФайла.dat');
   Reset(f);
   countA := 0;
   while Not eof(f) do begin
      Read(f, OneAuto);
      if Pos(sFind, OneAuto.Marka)>0 then begin
         Inc(countA);
         WriteLn('Марка: ',OneAuto.Marka,' Номер: ',OneAuto.Nomer,' Владелец: ',OneAuto.Vladelec);
      end;
   end;
   Close(f);
   WriteLn('Всего найдено автомобилей заданной марки: ', countA);
   Readln
end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование типа dynamic MooNDeaR C# (си шарп) 4 25.01.2012 20:33
формат описания файлового типа turbotrb Помощь студентам 1 17.09.2010 19:43
Паскаль.Использование множественного типа **star** Помощь студентам 9 21.11.2009 16:44
Использование собственного типа для юнита Алекс Ялта Gamedev - cоздание игр: Unity, OpenGL, DirectX 17 26.03.2009 15:55