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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2009, 14:12   #1
Ветас
Пользователь
 
Регистрация: 09.11.2007
Сообщений: 45
По умолчанию Как открыть файл на чтение?

Здравствуйте, уважаемые форумчане.
Задача у меня связана с файлом записей.
Программа запрашивает у пользователя, где создать файл -> создает этот файл и наполняет его данными.
Также программа запрашивает у пользователя, какой файл открыть на чтение, и если такой файл существует - то его содержимое выводится на экран.
По созданию файла мне все понятно. А вот с открытем файла на чтение - нет.
Что получается. За 1-й прогон программы создается файл, наполняется данными и его можно считать.
А за 2-й прогон программы если выбрать операцию чтения из файла и указав физический файл на диске - он почему-то не выводится на экран.

Код:
type
tovar=record
naimenovanie:string[30];
strana_exporter:string[30];
data_postavki:string[10];
kolichestvo_tovara:byte;
end;
var
tov:array[1..100] of tovar;
f:file of tovar;
date,str:string;
k,l,n:integer;
i:byte;
ch:char;
begin
10:clrscr;
textcolor(white);
writeln('   МЕНЮ   ');
writeln(' 1:  Создание файла ');
writeln(' 2:   Чтение файла  ');
writeln(' 3:  Добавление записи в файл  ');
writeln(' 4:  Выборка записей из файла  ');
writeln(' 5:      Выход      ');
{readln(k);}
repeat
ch:=readkey;
until ch in ['1'..'5'];
k:=ord(ch)-ord('0');
{readln(k);}
case k of
1:goto 6;
2:goto 20;
3:goto 30;
4:goto 40;
5:goto 12;
end;


6:clrscr;
writeln('Введите полный адрес и имя типизированного файла');readln(str);
{$I-}
assign(f,str);
rewrite(f);
{$I+}
if IoResult<>0 then begin
writeln('Повтори ввод полного пути и имени типизированного файла');
writeln('');
delay(500);
goto 6;
end
else
{$I-}
8:writeln('Введите количество записей');readln(n);
{$I+}
if (IoResult<>0) or (n<=0) then begin
writeln('Повтори ввод количества записей !!!');
delay(500);
goto 8;
end
else
writeln('Введите наименование товара, страну - экспортер, срок поставки и количество товара');
for i:=1 to n do begin
writeln('Введите данные ',i,' - й записи');
with tov[i] do begin
write('Введите наименование товара : '); readln(naimenovanie);
write('Введите страну - экспортер  : '); readln(strana_exporter);
write('Введите дату поставки       : '); readln(data_postavki);
{$I-}
9:write('Введите количество товара   : '); readln(kolichestvo_tovara);
{$i+}
if (IoResult<>0) or (kolichestvo_tovara<=0) or(kolichestvo_tovara>1000) then begin
writeln('Повтори ввод количества товара !!!');
delay(500);
goto 9;
end
else
writeln;
writeln('Нажмите Enter');readln;
end;
write(f,tov[i]);
end;
close(f);
str:='';
goto 10;

20:clrscr;
writeln('Введите полный адрес и имя типизированного файла');readln(str);
{$I-}
assign(f,str);
reset(f);
{$I+}
if IoResult<>0 then begin
writeln('Повтори ввод полного пути и имени типизированного файла');
writeln('');
delay(5000);
goto 20;
end
else
while not eof(f) do begin
read(f,tov[i]);
writeln(tov[i].naimenovanie);
writeln(tov[i].strana_exporter);
writeln(tov[i].data_postavki);
writeln(tov[i].kolichestvo_tovara);
end;
close(f);
readln;
goto 10;
Большая просьба помочь разобраться.
Ветас вне форума Ответить с цитированием
Старый 26.10.2009, 22:01   #2
NSvirus
пропагандирую жизЪ
Форумчанин
 
Аватар для NSvirus
 
Регистрация: 19.03.2007
Сообщений: 950
По умолчанию

бросай эту дурацкую затею с goto, сам запутаешься и других запутаешь.. и вообще, не красиво это как-то. Пользуйся процедурами, ну или вложенными циклами хотя бы.
Посторонним В.
NSvirus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как открыть какойнибуть файл??? sqqa Паскаль, Turbo Pascal, PascalABC.NET 27 15.07.2009 08:39
Как открыть файл? Xnarcotic Общие вопросы Delphi 4 14.06.2009 11:51
Можно ли открыть на чтение файл.txt из архива rar или zip. slips Общие вопросы Delphi 6 06.02.2009 23:51
Как открыть файл в Excel globalhunter Общие вопросы Delphi 2 11.02.2008 01:30