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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2015, 10:23   #1
Kirom
 
Регистрация: 26.01.2015
Сообщений: 5
По умолчанию Типизированные файлы

Я не знаю, как с типизированными файлами работать. В моём случае, в файле хранится Имя + пробел + Номер. Как мне оттуда достать эти Имя и номер и записать это в abonent[i].name и abonent[i].number?
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
type kniga = record
  number,name:string[11];
  end;
var abonent:array of kniga;
    f:file of kniga;
    i:integer;

begin
  { TODO -oUser -cConsole Main : Insert code here }
  assignfile (f,'E:/Программирование/УКШ/book.bat');
  reset (f);
  setlength(abonent,filesize(f)+1);
  for i:=1 to filesize(f) do begin
                             read (f,abonent[i]);
                             /// Сюда поставить фрагмент, записываемый в abonent[i].name и в abonent[i].number, данные с файла
                             end;
  closefile(f);

end.

Последний раз редактировалось Stilet; 30.05.2015 в 10:30.
Kirom вне форума Ответить с цитированием
Старый 30.05.2015, 10:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В моём случае, в файле хранится Имя + пробел + Номер
Это не типизированный файл а текстовый.
Код:
program Project2;

{$APPTYPE CONSOLE}

uses classes,
  SysUtils;
type kniga = record
  number,name:string[11];
  end;
var abonent:array of kniga;
    i:integer; row:TStringList;

begin
  Row:=TStringList.Create;
  with TStringList.Create do begin
   LoadFromFile(f,'E:/Программирование/УКШ/book.bat');
   setlength(abonent,Count+1);
   for i:=Low(abonent) to High(Abonent) do begin
    Row.DelimitedText:=Strings[i];
    if Row.Count>0 then abonent[i].number:=Row[0];
    if Row.Count>1 then abonent[i].name:=Row[1];
   end;
   Free;
  end;
  Row.Free;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.05.2015, 10:55   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

дай файл
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень нужно сделать задачу в Delphi(Типизированные файлы. файлы записи) Vitalik1 Помощь студентам 1 16.12.2011 10:38
типизированные файлы amidatong Паскаль, Turbo Pascal, PascalABC.NET 2 12.04.2011 07:55
Типизированные файлы surf135 Помощь студентам 1 14.06.2010 11:55
Файлы данных.Типизированные файлы. вылка Помощь студентам 6 17.05.2010 15:42
типизированные файлы 534 Помощь студентам 3 10.05.2010 21:55