Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Как считать из открытого другим процессов файла


Автор: Teran 17.10.2005, 16:48
не подскажите как считать из открытого другим процессов файла и очистить его.

хотя этот файл блокнотом и открывается и перезаписывается а из программы не хочет.

Автор: Alex 17.10.2005, 17:12
http://forum.vingrad.ru/index.php?showtopic=21411&view=findpost&p=260327

Автор: Teran 17.10.2005, 17:44
пробовал уже DSA но чтото не хочет
писал
Код

var
str:string;
begin

DF_Read ('C:\111111.txt', 0, DF_GetFileSize ('C:\111111.txt'),@str );
Memo1.lines.text:=str ;


не выходит
пише что пытаюсь влезть не по тому адресу
Добавлено @ 17:50
мне нужно считать с текстовика и потом его очистить????

Автор: Alex 17.10.2005, 17:53
Teran, подождем p0s0l я думаю он решит вопрос.

Автор: Teran 17.10.2005, 17:57
ок а когда он будет не вкурсе??
Добавлено @ 17:59
ДОПОЛНЕНИЕ: этот текстовик открывает служба и не закрывает а только "fflush(g_logfile);"

Автор: Alex 17.10.2005, 18:07
Ждать не нужно smile

Код

var
  FileName, s : string;
  len: Int64;
begin
  FileName := 'e:\Temp\11111.txt';
  len:= DF_GetFileSize(FileName);
  SetLength(s, len);
  DF_Read (FileName, 0, len, @s[1]);
  ShowMessage(s);
end;

Автор: _hunter 17.10.2005, 18:08
если служба твоя ( сужу по паралельным постам ) -- открывай файл без блокировки. тогда и проблем с чтением быть не должно...

Автор: Teran 17.10.2005, 18:14
но он вроди и так открывается без блокировки :

g_logfile = fopen(fname, "a");
..
fprintf(g_logfile, "%s\n", tm_msg);
fflush(g_logfile);

но при

List.LoadfromFile(...) - ругается что процесс уже его открыл

Автор: _hunter 17.10.2005, 18:51
попробуй его TFileStream-ом открыть ( всеравно в делфях пишеш ) с флагами fmOpenRead и fmShareCompat ( или fmShareDenyNone ) что скажет?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)