Помощь - Поиск - Пользователи - Календарь
Полная версия: Открыть уже открытый файл
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
petro_fm
нужно открыть уже открытый файл,для чтения, пишу вот так :
AssignFile(f,fn.Text);
FileMode:=fmShareDenyNone ;
{$I-}
reset(f);
{$I-}

err:=IOREsult;
if err<>0 then begin
ShowMessage('Error open file # '+IntToStr(err));
exit;
End;
возвращает ошибку №32
FileMode пробовал разные, все равно не открывает , но
команды type, copy както этот файл открывают ???? а как ????

volvo
У тебя файл (который пытаешься открыть) случаем не текстовый? Это первое... А второе - чтобы ТЫ мог открыть файл, то та программа, которая открыла его ДО тебя, должна была это сделать через fmShareDenyNone, что не запрещало бы тебе тоже открывать файл...
Гость
да,файл текстовый (файл системного журнала 1С)
та программа, которая до меня открыла, не знаю КАК это зделала, НО
ТоталКомандер выевер эго открываэт, и type открывает, и копи копирует, а я его открыть не могу, АБЫДНА , ДА angry.gif
volvo
Если файл текстовый, то FileMode менять бесполезно:

Цитата(Delphi Help)
FileMode variable
Description

The FileMode variable determines the access mode to use when typed and untyped files (not text files) are opened using the Reset procedure.


Попробуй так:
var f:TFileStream;
begin
f:=TFileStream.create('filename.txt', fmShareDenyNone);
memo1.Lines.LoadFromstream(f);
...

Гость
memo1.Lines.LoadFromStream(f1);

Access violation at adress XXXXX in module XXXXX read of adress XXXXX .

вот так вот пишет гадина !low.gif

может еще какие идеи ????
Гость
ооооо, Всемогущий ALL помоги незнающему, подскажи как же все таки type файлик открывает а я немогу !!!!
Malice
Цитата(Гость @ 22.01.2007 13:29) *

ооооо, Всемогущий ALL помоги незнающему, подскажи как же все таки type файлик открывает а я немогу !!!!

Вот так попробуй:
var f:integer;

f:=fileopen('\....\1cv7.mlg',fmOpenRead);

fileread (f,буфер,размер);

FileClose(f);



Чтобы читать построчно только придется немного похлопотать smile.gif

Упс, проверил - не работает..
Гость
плохо angry.gif
я перед запуском своєй программы копирую 1cv7.mlg в другой файл, но это ж ни дело angry.gif
hiv
Цитата(Гость @ 22.01.2007 11:13) *
вот так вот пишет гадина !low.gif
может еще какие идеи ????
Есть идея!!! Может покажешь кусок кода где ошибка возникает (включая определение переменных).
Гость
var f:textfile;
f1:TFileStream;
begin
AssignFile(f,fn.Text);
FileMode:=fmShareDenyNone ;
{$I-}
reset(f);
{$I-}
err:=IOREsult;
if err<>0 then begin
ShowMessage('Error open file # '+IntToStr(err));
exit;
End;
Здесь раз - #32

f:=TFileStream.create(fn.Text, fmShareDenyNone);
memo1.Lines.LoadFromstream(f); <<<<<< здесь два Access violation ......



volvo
Ты что, именно этот код пытаешься запускать? Чего ты сюда постишь-то бред этот? Ты КОПИРУЙ а не впечатывай, ты ж ошибки вносишь!!! Как ты, например, создаешь TextFile через конструктор TFileStream?

В общем, я смотрю, по-хорошему не понимаем... Либо ты даешь код (не куски, а КОД, напиши маленькую программу, которая ТОЛЬКО пытается читать открытый файл, и запость ее сюда ПОЛНОСТЬЮ), который компилируется и запускается на выполнение, либо я закрываю тему... Балагана на форуме и без тебя хватает!
Гость
опс, ошибочка вышла
f1:=TFileStream.create(fn.Text, fmShareDenyNone);
memo1.Lines.LoadFromstream(f1); <<<<<< здесь два Access violation ......

так вот
Malice
прверил сейчас на 1с-вской базе, вариант Volvo нормально работает..
Гость
йопт РАБОТАЕТ
пасиба Вольво !!!! !thanks.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.