Вот прога, цель создать отчёт о метеонаблюдеениях, свой тип я сделал, это без проблем, а вот fileexists говорит
unknown identifier, как я понял это функция какого-то модуля, но какого не знаю.
type
tMeteo = record
year, digit, vlazhn, atmdav : integer;
month, vsutok, napvet, osadki : string;
tempvoz, skorvet : real;
end;
var
pon : tMeteo;
f : file of tMeteo;
begin
assign(f,'c:\meteo.pog');
if fileexists('c:\meteo.pog') then
reset(f) else
rewrite(f);
if reset(f) then seek(filesize(f));
write(pon.year);
read(pon.year);
end.
Это Дельфийская функция, из модуля SysUtils, а у тебя какой компилятор?
Стандартный паскалевский, который при установке ставится. Я вчера читал, что вроде этой функцией в паскале можно пользоваться.
напиши свой file_exists, открывая файл для чтений, юзая директиву {$I-}, а потом анализируя результат IOResult
Вот и я про это. Значит, функцию FileExists тебе придется написать самостоятельно, или обойтись без функции: воспользоваться директивой {$I-} и функцией IOResult для определения, успешно ли открылся файл на чтение. Если открытие на чтение (reset) закончилось ошибкой (IOResult <> 0) - значит открывать файл на запись (rewrite)...
ну в общем модуль с функцией fileExists я сделал вроде работает, а вот с прогой опять косяк, там где фигурные
скобки и жирным шрифтом,говорит что error in expression. на уроке препод сказал что так вроде будет работать, а стал пробовать и фига с маслом,
unit sysunit;
interface
type
tMeteo = record
year, digit, vlazhn, atmdav : integer;
month, vsutok, napvet, osadki : string;
tempvoz, skorvet : real;
end;
function (opr : string): boolean;
implementation
function fileExists(opr : string): boolean;
var f : file of tMeteo;
begin
assign(f, 'opr');
{$I-}
reset(f);
if IOResult = 0 then begin close(f);
fileExists:= true end else
fileExists:= false;
{$I+}
end;
end.
program pogoda;
uses sysunit;
type
tMeteo = record
year, digit, vlazhn, atmdav : integer;
month, vsutok, napvet, osadki : string;
tempvoz, skorvet : real;
end;
var
pon : tMeteo;
f : file of tMeteo;
begin
assign(f,'c:\meteo.pog');
if fileexists('c:\meteo.pog') then
reset(f) else
rewrite(f);
{if reset(f) then seek(filesize(f)); }
write(pon.year);
read(pon.year);
end.
а как бы тогда сделать, что бы если файл уже открыт, он(курсор) перемещался в конец файла, просто seek тоже ошибку выдал 122, вот я и встрял
begin
assign(f,'c:\meteo.pog');
if fileexists('c:\meteo.pog') then reset(f)
else rewrite(f);
seek(f, filesize(f)); { <--- в любом случае... }
write(pon.year);
seek(f, filesize(f) - 1); { <--- читать будем то, что только что записали }
read(pon.year);
end.
уже сделал, понял что лишнее и убрал(это про тип), а модуль компилируется, но в нём по ходу косяк, пока не понял где именно.
п.с. короче он не как надо работает, не проверят ни чего, каждый раз по новой файл этот создаёт.