![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
kindDevil |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 10.10.2005 Репутация: нет Всего: нет |
при чтении из типизированного файла, читается строковое поле записи.
при сохранении делается rewrite файла с именем соотв. этому строковому полю. если редактор открывает уже сохраненный файл, а затем пытается его сохранить под тем же именем, то выдается ошибка Invalid file name. в чем бага?
//процедура чтения:
процедура записи, после которой выдается ошибка, если сохраняется в уже существующий файл.
|
||||||
|
|||||||
Fedia |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 465 Регистрация: 2.8.2006 Где: первым встречаю р ассвет Репутация: 8 Всего: 13 |
Перед
попробуй добавить:
-------------------- Накануне решающей битвы Я иду, и надеждою зыбкой Озаряется эта дорога, Я мечтаю увидеть улыбку На лице победившего Бога… |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
kindDevil, скорее всего файл просто занят другим процессом, потому как перезапись существуещего файла при помощи rewrite допустимая операция.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
SlaUr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 18.9.2003 Репутация: 3 Всего: 5 |
Потому что выдается ошибка Invalid file name я бы посоветовал делать полный путь к файлу.
Если начальная директория это директория программы то это можно сделать так:
можно еще глянуть что находится в k.name (showmessage(k.name)) Это сообщение отредактировал(а) SlaUr - 21.8.2006, 05:19 |
|||
|
||||
Fedia |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 465 Регистрация: 2.8.2006 Где: первым встречаю р ассвет Репутация: 8 Всего: 13 |
SlaUr, скорее всего ты прав, только тогда уж проще так:
Смущает только, что ошибка появляется в случае, если файл с таким именем уже существует. -------------------- Накануне решающей битвы Я иду, и надеждою зыбкой Озаряется эта дорога, Я мечтаю увидеть улыбку На лице победившего Бога… |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
SlaUr, Fedia, но kindDevil, пишет
Ошибка возникает после записи, а не чтения, а поскольку rewrite, всегда создает новый файл, то путь не играет значения (если он не сетевой или не указыват на CD-ROM) -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Fedia |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 465 Регистрация: 2.8.2006 Где: первым встречаю р ассвет Репутация: 8 Всего: 13 |
У меня как-то были глюки с относительными путями, поэтому больше склоняюсь к варианту SlaUr. Просто в вопросе есть противоречия: с одной стороны не может записать в уже существующий файл, а с другой: ошибка "Invalid file name". Правду скоро узнаем ![]() Это сообщение отредактировал(а) Fedia - 21.8.2006, 09:01 -------------------- Накануне решающей битвы Я иду, и надеждою зыбкой Озаряется эта дорога, Я мечтаю увидеть улыбку На лице победившего Бога… |
|||
|
||||
Spectral |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 2.4.2006 Репутация: нет Всего: нет |
Я бы сделал вот так:
Или через паскалевские BlockRead/BlockWrite. |
|||
|
||||
kindDevil |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 10.10.2005 Репутация: нет Всего: нет |
SlaUr
спасибо огромное. очень помог. но действительно странно: если я делаю новый файл, то сохраняется великолепно, даже без извлечения пути к директории с программой. ![]() но дописал нахождение полного пути и все работает ![]() спасибо всемм. |
|||
|
||||
AugMaster |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.8.2006 Репутация: нет Всего: 1 |
хе..я кажись понял багу....ты когда опендиалог делаешь то автоматом делаешь чейндждир...если ты просто сохраняешь файл(без открытия) то путь сохранения = ExeDir+Weapon\...а вот если ты опендиалог файла выполнил в папке Weapon то туда автоматом происходит ChDir и затем пытаясь сохранить файл, ты его уже сохраняешь не в ExeDir+Weapon а в ExeDir+Weapon+Weapon...а вообще действительно не пользуйся относительной адресацией а полной...сам над этим часа 3 помучался пока понял причину.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |