Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как считать данные из файла открытого другим приложением [D6, WinXP]


AlexSt ©   (2007-09-03 17:56:00) 

Подскажите, кто знает как можно считать данные из файла открытого другим приложением, если скопировать функцией CopyFile я его могу, а открыть только для чтения нет.


Dib@zol   (2007-09-03 19:58:00) [1]

Поправлюсь: LongInt( Result):=LocalAlloc(GMEM_FIXED, S);


Dib@zol   (2007-09-03 19:32:00) [2]

function GetFileData(FileName:string):pointer;
 F:=CreateFile(PChar(FileName), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 if F=INVALID_HANDLE_VALUE then exit;
 FindFirstFile(PChar(FileName), wfd);
 S:=wfd.nFileSizeLow;
 LongInt(P):=LocalAlloc(GMEM_FIXED, S);
 ReadFile(F, Result^, S, T, nil);
 CloseHandle(F);
end;

...

P:pointer;

...

P:=GetFileData('c:\1.txt');
// Некие действия
LocalFree(LongInt(P));


AlexSt   (2007-09-03 18:56:00) [3]


> CreateFile + FILE_SHARE_READ or FILE_SHARE_WRITE + F1

Есть пример работы с CreateFile


Dib@zol   (2007-09-03 18:34:00) [4]

> Как расшарить? Как это сделать?

CreateFile + FILE_SHARE_READ or FILE_SHARE_WRITE + F1


umbra   (2007-09-03 18:32:00) [5]

Если занятый файл нельзя открыть для чтения с правами на совместный доступ для любых операций, то легче всего подождать, пока файл освободится. Конечно, если это не файл подкачки :)


AlexSt   (2007-09-03 18:29:00) [6]

Как расшарить? Как это сделать?

Копирование это резервный вариант, если ничего больше не получиться. Неохото делать лишние операции.


Dib@zol   (2007-09-03 17:57:00) [7]

> скопировать функцией CopyFile я его могу, а открыть только
> для чтения нет.

Дык открывай для чтения/записи и плюс расшаривай доступ!


umbra   (2007-09-03 17:57:00) [8]

скопировать, открыть копию и читать из нее.


Наверх

Титульная страница Поиск, карта сайта Написать письмо