Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Файлы

Автор: -Марина- 15.03.2008 0:22

Я написала программу, в которой нужно открыть файл для чтения данных,а программа при запуске пишет что файл не найденю Подскажите пожалуйста в каком месте в программе нужно указывать путь к файлу?

Автор: Client 15.03.2008 0:31

Цитата
Я написала программу
Где?

Автор: -Марина- 15.03.2008 18:11

В смысле где? В Паскале.

Автор: Ozzя 15.03.2008 18:23

Марина, телепаты в командировке на Бетельгейзе.
Предполагаю, что проблема в

assign(f, 'c:\имя_твоей_папки\_имя_твоего_файла');

?

Автор: Michael_Rybak 15.03.2008 18:49

Цитата
В смысле где? В Паскале.


он имел ввиду просьбу показать программу

Автор: -Марина- 15.03.2008 19:12

Пожалуйста:


program create_bfile;
var buf:array[1..4] of real;
f_in:text;
f_out:file;
i,k:integer;
name_in,name_out:string;
const
begin
{$I-}
writeln('Введите имя входного файла '); readln(name_in);
assign(f_in,name_in);
reset(f_in);
if IOResult<>0 then begin
writeln('Файл',name_in,'­не найден­'); exit end;
writeln('Введите имя выходного файла'); readln(name_out);
assign(f_out,name_out);
rewrite(f_out,sizeof(real)*4);
{$I-}
i:=0;
while not eof(f_in)do begin
inc(i);
read(f_in,buf[i]);
if i=4 then begin
blockwrite(f_out,buf,1); i:=0; end;
end;
if i<>0then begin
for k:=i+1 to 4 do buf[k]:=0;
blockwrite(f_out,buf,1);
end;
close(f_in); close(f_out);
end.


М
Используем теги


Автор: Ozzя 15.03.2008 19:19

Файл с данными лежит в той же директории, что и программа?

Автор: -Марина- 16.03.2008 1:54

Да, в той же директории.

Автор: volvo 16.03.2008 2:12

Длина имени файла и того имени, что вводится пользователем не больше 8-ми символов? Турбо Паскаль работает с именами файлов в формате 8.3

Автор: -Марина- 16.03.2008 3:16

Нет, не больше. Имя состоит только из трёх букв.

Автор: volvo 16.03.2008 3:49

Блин, у меня почему-то ощущение, что я на экзамене, а ты - преподаватель. Ты ничего не путаешь? Тебе нужна помощь, или кому? Что, от тебя убудет, если ты напишешь, КАКИЕ имена ты используешь? Если ты напишешь, не ReadOnly ли случайно эти файлы?

Ну, как знаешь... Не хочешь сама себе помогать - дело твое...

Автор: andriano 16.03.2008 15:38

Марина, у тебя не совсем верно используются директивы {$I-}.
Честно говоря, это очень сильнодействующее средство, которое вообще в обычных программах использовать не следует, но, почему-то, именно этот способ проверки наличия файла стал стандартом de facto.
Первое: сделай в программе так:


writeln('Введите имя входного файла '); readln(name_in);
assign(f_in,name_in);
{$I-}
reset(f_in);
{$I+}
if IOResult<>0 then begin
...
и чтобы больше эти директивы нигде в коде не встречались, в противном случае они будут влиять не только на работу с файлом, но и вообще на весь ввод-вывод, что может существенно затруднить отладку.

И еще: попытайся писать, что ты делаешь, что ожидаешь получить, и что вместо этого получаешь. Иначе очень трудно догадаться, что же тебе нужно.