![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| SGTeam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.7.2006 Репутация: нет Всего: нет |
И так проблема - Обьявляю 2 глобальные переменные например p1 и р2 типа TFileStream.При открытии файла присваиваю первой переменной имя открываемого файла, второй- файла копии.Проблема - при попытке обратится в дальнейшем из какой либо другой части программы ко второй переменной выдаётся ошибка- занято другим процессом. Каким образом при открытии файла мне правильно его копировать, чтобы одновременно работать с 2 файлами сразу но в разных потоках.
|
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 13 Всего: 158 |
вопрос кривоват. а ошибка в 17ой строке.
|
|||
|
||||
| SGTeam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.7.2006 Репутация: нет Всего: нет |
Упс...исправляюсь...
|
|||
|
||||
| Rennigth |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
ну во первых не
а
PS: (сговорились чтоли... часто такие ошибки лезу последнее время) так, ща смотрим дальше... -------------------- (* Honesta mors turpi vita potior *) |
||||
|
|||||
| Yanis |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Это где же тебя так классы учили создавать? Надо так:
Добавлено @ 17:13 Rennigth |
||||
|
|||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 13 Всего: 158 |
в OpenClick'е криво освобождается поток. значения путей задаются где-нибудь помимо этого опенклика? при открывании надо бы ловить ошибки.
|
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Yanis,
SGTeam, что в итоге на за путь у тебя получается вот здесь:
в BakFilePath? Добавлено @ 17:21 а то код неочень наглядный... гадать не очень хочется -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| SGTeam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.7.2006 Репутация: нет Всего: нет |
BakFilePath - путь к копии файла
|
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Хм... А если просто попробовать через CopyFIle, чтобы не заморачиваться???
-------------------- Ll 2 |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
это конечно не моё дело, но почему бы не использовать функции самой винды в командном файле
|
|||
|
||||
| SGTeam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.7.2006 Репутация: нет Всего: нет |
Через CopyFile получается - файл занят чужим процессом=(
|
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
А если в вместо fmOpenRead поставить fmShareDenyNone?
-------------------- Ll 2 |
|||
|
||||
| SGTeam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.7.2006 Репутация: нет Всего: нет |
Пробовал - опять занято другим процессом.........Кроме открытия и процедуры сравнивания нигде более к тем файлам не обращаюсь.
|
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 13 Всего: 158 |
приводи полный текст модуля.
|
|||
|
||||
| SGTeam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.7.2006 Репутация: нет Всего: нет |
|
|||
|
||||
| Демо |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
1.
procedure TForm1.Open1Click(Sender: TObject); if FileExists(Application.ExeName+str + '.bak')= false then //достаточно if <Условие> then (Без '=') begin FileStr.SaveToFile(Application.ExeName+str + '.bak'); BakFilePath:= Application.ExeName + str + '.bak'; FileStr.Free; Утечка памяти, если условие не выполняется. end; end; 2.
OrigFile.Create(FilePath,fmOpenRead or fmShareDenyNone); BackupFile.Create(BakFilePath,fmOpenRead or fmShareDenyNone); 3.
S: TStringList - не уничтожается. Утечка памяти. Это сообщение отредактировал(а) Демо - 19.8.2006, 19:31 -------------------- |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |