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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2010, 19:57   #1
maxflint
работаю за еду
Пользователь
 
Аватар для maxflint
 
Регистрация: 31.10.2009
Сообщений: 64
По умолчанию Проблемы с файлами. Паскаль

Код:
Uses m1;
const
diskName : String = 'C:';
pathName : String = '\';
fileName : String = 'input.dat';
Begin
writeln('Summa otricatelnih elementov = ',
Task(diskName, pathName, fileName):5);
End.
Код:
{модуль}
Unit m1;
Interface
Function Task(d_name, p_name, f_name : String): Integer;
Implementation

Function Task(d_name, p_name, f_name : String): Integer;
Var
f : file of Integer;
buf,z : Integer;
summa : Integer;
Begin
summa:=0;
z:=0;
assign(f, d_name+p_name+f_name);
reset(f);
while not eof(f) do
begin
read(f,buf);
if (buf<0) then summa := summa + buf;

end;
close(f);

Task := summa;
end;
end.

файл input.dat создаю в корне диска С. туда записываю -1 -2 -3.
Почему считывает какую-то ахинею и иногда пишет dick read error.
Я же всё правильно делаю
Вотан ждёт меня в своих чертогах, на свой вечный пир!
maxflint вне форума Ответить с цитированием
Старый 22.03.2010, 22:49   #2
maxflint
работаю за еду
Пользователь
 
Аватар для maxflint
 
Регистрация: 31.10.2009
Сообщений: 64
По умолчанию

та же проблема...
Код:
var
f : file of integer;
z : integer;
begin
assign(f, '1.dat');
reset(f);
seek(f,0);
while not eof(f) do
read(f,z);
end.
в файле записано 1 2 3, а считывает 8421, 8422, 8423 и read disk error/
В чём пролема
Вотан ждёт меня в своих чертогах, на свой вечный пир!
maxflint вне форума Ответить с цитированием
Старый 22.03.2010, 23:12   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

потому что, когда вы в блокноте пишете туда 1 2 3 - то это вы записываете ТЕКСТ!!!
а у вас файл из целых чисел (бинарный!)
f : file of integer;

попробуйте создавать файл "не ручками",
а таким, например, кодом (запишем в файл целые числа 1, 2, 3, 4):
Код:
var
f : file of integer;
i : integer;
begin
  assign(f, '1.dat');
  rewrite(f);
  for i:=1 to 4 do
    write(f,i);
  Close(f);
end.
_______________________________
Цитата:
*elite coder*
ну, ну...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.03.2010, 23:15   #4
maxflint
работаю за еду
Пользователь
 
Аватар для maxflint
 
Регистрация: 31.10.2009
Сообщений: 64
По умолчанию

благодарю, натупил
Вотан ждёт меня в своих чертогах, на свой вечный пир!
maxflint вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, работа с файлами. Alexey_HvaranG Помощь студентам 5 07.12.2009 22:39
работа с файлами в паскаль... Оксаночка:) Помощь студентам 1 19.06.2009 09:59
Паскаль. Работа с файлами. Fortismine Помощь студентам 3 21.05.2009 14:16
Проблемы с h-файлами (посоветуйте) Tan4ik Помощь студентам 1 20.05.2008 08:58
Проблемы с Ini-файлами Азазель Общие вопросы Delphi 6 08.09.2007 19:24