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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2009, 16:09   #1
Ренат Садыков
 
Регистрация: 07.11.2008
Сообщений: 4
Вопрос Работа с файлами

Для копирования файлов таблицы Paradox из каталога базы данных в некий другой рабочий каталог и обратно использую объектный подход,
т. е. функцию CopyFrom базового класса TSream. Нерегулярно, время от времени Delphi 7 выдает, что "Процесс не может получить доступ к файлу, т.к. этот файл занят другим процессом" и стопорит выполнение программы. Во всех случаях дело касается файлов вторичных индексов
.XG или .YG.
Код следующий

var mm2, mm3, mm4, nnn: Integer; dir, nm01, nm02, nm03: string[100];
nm0: string[10]; Pf, Pf1: TFileStream; Rec: TSearchRec;
begin
DataModule2.TPP1.Close;
nm01 := dir;
mm4 := Length(nm01) + 1;
Insert('Tables-P\TPP1.*', nm01, mm4);
nm02 := dir;
mm4 := Length(nm02) + 1;
Insert('Tables-P\', nm02, mm4);
nm03 := dir;
mm4 := Length(nm03) + 1;
Insert('Tables\', nm03, mm4);
mm2 := Length(nm02) + 1;
mm3 := Length(nm03) + 1;
nnn := FindFirst(nm01, faAnyFile, Rec);
while nnn = 0 do
begin
nm0 := Rec.Name;
Insert(nm0, nm02, mm2);
Insert(nm0, nm03, mm3);
Pf1 := TFileStream.Create(nm02, fmOpenRead);
Pf := TFileStream.Create(nm03, fmOpenWrite);
Pf.CopyFrom(Pf1, Pf1.Size);
Pf1.Free;
Pf.Free;
nm02 := dir;
mm4 := Length(nm02) + 1;
Insert('Tables-P\', nm02, mm4);
nm03 := dir;
mm4 := Length(nm03) + 1;
Insert('Tables\', nm03, mm4);
nnn := FindNext(Rec);
end;
FindClose(Rec);
end;

Как преодолеть эту ситуацию ? Спасибо за ответ.
Ренат Садыков вне форума Ответить с цитированием
Старый 21.07.2009, 16:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А не проще ли скопировать через WIN API?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами JamS007 Общие вопросы C/C++ 4 27.06.2009 22:03
c++ работа с файлами tipson Помощь студентам 9 27.06.2009 20:01
С++ю Работа с файлами maloy-rom Помощь студентам 1 03.06.2009 16:18
Работа с файлами МартинИ Паскаль, Turbo Pascal, PascalABC.NET 3 23.12.2008 21:36
работа с файлами С++ Rossik Общие вопросы C/C++ 1 16.05.2008 19:28