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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2009, 17:48   #1
Лурье
 
Регистрация: 13.05.2009
Сообщений: 5
По умолчанию Чтение из файла smallint

Здраствуйте, очень нужна помощь:
Есть файл, состоящий из значений smallint. Количество большое, так что лучше читать "до конца файла". Полученное записать в массив.

Заранее благодарен.

з.ы. Открывать файл желательно через "диалог", чтоб был выбор.
Лурье вне форума Ответить с цитированием
Старый 13.05.2009, 17:54   #2
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Код:
var f: file of smallint;

AssignFile(f,OpenDialog1.FileName);
Reset(f);
while not eof(f) do begin
inc(n);
read(f,Arr[n]);
end;
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 13.05.2009, 18:11   #3
Лурье
 
Регистрация: 13.05.2009
Сообщений: 5
По умолчанию


Выдает ошибку уже при нажатии на кнопку открытия диалога.

Последний раз редактировалось Лурье; 13.05.2009 в 18:19.
Лурье вне форума Ответить с цитированием
Старый 13.05.2009, 18:20   #4
Hottabych
Форумчанин
 
Регистрация: 13.01.2008
Сообщений: 140
По умолчанию

Код:
procedure TForm1.btnLoadClick(Sender: TObject);
var
f: file of smallint;
begin
if OpenDialog1.Execute then 
 begin
   AssignFile(f,OpenDialog1.FileName);
   Reset(f);
   while not eof(f) do begin
   inc(n);
   read(f,Arr[n]);
   CloseFile(f);
 end;
Так должно работать

Последний раз редактировалось Hottabych; 13.05.2009 в 18:26.
Hottabych вне форума Ответить с цитированием
Старый 13.05.2009, 18:27   #5
Лурье
 
Регистрация: 13.05.2009
Сообщений: 5
По умолчанию

Спасибо, но теперь та же ошибка после выбора файла.
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var
f: file of smallint;
n: integer;
arr: array[1..20000] of smallint;
begin
n:=1;

AssignFile(f,OpenDialog1.FileName);
if OpenDialog1.Execute then
begin
Reset(f);
while not eof(f) do
begin
inc(n);
read(f,Arr[n]);
end;
CloseFile(f);
end;
end;


end.

Последний раз редактировалось Лурье; 13.05.2009 в 18:34.
Лурье вне форума Ответить с цитированием
Старый 13.05.2009, 18:34   #6
Hottabych
Форумчанин
 
Регистрация: 13.01.2008
Сообщений: 140
По умолчанию

Неправильный путь к файлу... И про переменные не забудь...
Hottabych вне форума Ответить с цитированием
Старый 13.05.2009, 18:39   #7
Hottabych
Форумчанин
 
Регистрация: 13.01.2008
Сообщений: 140
По умолчанию

Процедура AssignFile(f,OpenDialog1.FileName) должна быть вызвана после выполнения OpenDialog, т.к. ей передается OpenDialog1.FileName...
Смотри код выше..
Hottabych вне форума Ответить с цитированием
Старый 13.05.2009, 18:45   #8
Лурье
 
Регистрация: 13.05.2009
Сообщений: 5
По умолчанию

Спасибо огромное, извините зе невнимательность. Если будут вопросы - напишу. Еще раз - спасибо.
Лурье вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение из файла e@gle Общие вопросы Delphi 3 14.12.2008 17:21
чтение из файла Илья500 Общие вопросы C/C++ 26 05.12.2008 00:37
Чтение из файла Arkuz Общие вопросы Delphi 14 08.10.2008 19:52
Чтение файла [Smarik] Помощь студентам 8 28.04.2008 22:15
чтение файла Arteom Общие вопросы Delphi 6 27.08.2007 18:15