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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2007, 00:17   #1
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
Стрелка Работа с файлом, занятым другим процессом

Как можно организовать копирование(или другое действие), с файлом, занятым другим процессом? Или подскажите какую прогу надо использовать.
Заранее спасиба.
Viteef вне форума Ответить с цитированием
Старый 10.05.2007, 10:56   #2
mrandrey
Форумчанин
 
Регистрация: 30.03.2007
Сообщений: 124
По умолчанию

Записывать и удалять нельзя, а читать можно, вот пример:

procedure TForm1.Button1Click(Sender: TObject);
var
a:_OFSTRUCT;
iFileHandle: cardinal;
iFileLength: Integer;
iBytesRead: Integer;
Buffer: PChar;
i: Integer;
begin
if OpenDialog1.Execute then
begin
try
iFileHandle := OpenFile(pchar(OpenDialog1.FileName ),a,OF_READ);
if iFileHandle=-1then
begin
ShowMessage('Error!');
exit;
end;
iFileLength := FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
Buffer := PChar(AllocMem(iFileLength + 1));
iBytesRead := FileRead(iFileHandle, Buffer^, iFileLength);
FileClose(iFileHandle);
for i := 0 to iBytesRead-1 do
begin
StringGrid1.RowCount := StringGrid1.RowCount + 1;
StringGrid1.Cells[1,i+1] := Buffer[i];
StringGrid1.Cells[2,i+1] := IntToStr(Integer(Buffer[i]));
end;
finally
FreeMem(Buffer);
end;
end;
end;

ps все работает, но большие файлы лучше этим примером не открывать
Тут без 100г не розберешся.....
Спасибо не нужно, а на весы слева кликнуть не помешает!!!
mrandrey вне форума Ответить с цитированием
Старый 10.05.2007, 18:58   #3
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
Вопрос

Не работает вообще, а на обычных файлах глючит со страшной силой
Viteef вне форума Ответить с цитированием
Старый 10.05.2007, 20:45   #4
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

на чтение, то можно всегда открыть (хотя есть исключения), для доступа к занятым файлам придётся писать драйвер, хотя есть другие методы, но драйвер по моему проще всего
вот пожалуйста другие методы:
http://www.wasm.ru/article.php?article=lockfileswork
rpy3uH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с ini файлом workres Общие вопросы C/C++ 5 24.04.2011 22:25
Работа с файлом в C Mishka Помощь студентам 2 22.07.2008 13:28
работа с txt файлом ShenDy Общие вопросы C/C++ 1 08.04.2008 22:55
Работа с текстовым файлом nataly_ukr БД в Delphi 23 07.12.2007 22:13
Работа с файлом на С++ For Dos KORT Помощь студентам 2 06.10.2007 21:20