![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Штабс |
|
|||
Unregistered |
Пипл срочно надо избавиться от этой ошибки
код вроде верный try AssignFile(f, FileName); Reset(f); except Rewrite(f) ; end; Файл существует но на любую попытку скинуть в него хоть что то мессадже I\O Error 105 что не так?! |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Подожди, т.е. теоретически возможна команда ReWrite без Assign-а?...
Это ли не ошибка? Тем более если файл существует, то он откроется для чтения и понятно, что писать он в себя ничего не дает это ошибка два. |
|||
|
||||
Штабс |
|
|||
Unregistered |
Ой прошу пардону
AssignFile(f, FileName); try Reset(f); except Rewrite(f) ; end; Rewrite() отрабатывает ругань конкретно идет на WriteLn(f,BlaBlaBlaBlaBlaBlaBla) при Reset(f) при пошаговой трассировке F8 напоминаю 105 ошибка это невозможность открыть файл для записи AssignFile(f, FileName) OK try OK Reset(f); OK except OK структура отработала (т.е. существующий файл получил указатель и открыт для работы) WriteLn(f,BlaBlaBlaBlaBlaBlaBla) I\O Error 105 PS кстати аналогичное построение с $I- .... $I+ результат аналогичный |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Че-то я не пойму:
что за конструкция, для чего она, или я чего-то не понимаю или она лишена логики. т.е. программа должна попробовать открыть файл для чтения и если не получилось то открыть для записи....? Странно как-то это. try Reset(f); except Rewrite(f) ; end; а почему отрабатывает Rewrite(f) ; т.е. для чтения он открытьсяне может? а для записи может?..... далее WriteLn(f,BlaBlaBlaBlaBlaBlaBla) BlaBlaBlaBlaBlaBlaBla-это переменная или имеется ввиду WriteLn(f,'BlaBlaBlaBlaBlaBlaBla')? Мне кажется но все-таки открывается для чтения и ругается при попытке записать что-либо в него, что вообщем-то естественно. |
|||
|
||||
devmstr |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: 2 Всего: 11 |
Если хочешь писать пиши:
-------------------- Think different ©Steve Jobs ![]() |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
f - какого типа?
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Собственно по ошибкам в/в, можно исп. дерективы компилятора {$I-} и {$I+}
Добавлено @ 02:05
Имхо, тип здесь не играет особой роли... |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Считаешь что мне делать нечего? -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Ошибка в общем-то проста и очевидна, я не зря про тип спрашивал, не совсем был уверен, хотя и догадывался откуда ноги растут, сейчас добрался до Дельфи проверил...
Вот код:
Если этот код запустить, и файл 'c:\myfile.txt' существует, то получим эту самую ошибку 105. Почему? До потому что reset не открывает текстовые файлы на запись! только на чтение. Для записи текстовый файл должен быть открыт только rewrite или append. Вот и все проблемы! -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Об чем и говорим на каждом собрании... :-)
|
|||
|
||||
Штабс |
|
|||
Unregistered |
Только что вернулся от заказчика....
прошу извинить за долгое молчание и так тип файла My_File:TextFile т.е. текстовой Директивы компилятора {$I} позволяют отлавливать Error Code 2: Файл не найден 3: Неверное имя 4: Слишком много открытых файлов 5: Файл не доступен 100: Достигнут конец файла (EOF) 101: диск переполне 106: ошибка ввода 105 относится к расширенной таблице ошибок Если этот код запустить, и файл 'c:\myfile.txt' существует, то получим эту самую ошибку 105. Почему? До потому что reset не открывает текстовые файлы на запись! только на чтение. Для записи текстовый файл должен быть открыт только rewrite или append. Вот и все проблемы! спасибо VIT большое но насчет очевидности ![]() я к примеру не знал этого .... хотя стаж еше с TP4 еще раз большое спасибо |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
![]() ![]() -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
devmstr |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: 2 Всего: 11 |
Vit
Приятно, когда тебя окружают такие проффесионалы! ![]() -------------------- Think different ©Steve Jobs ![]() |
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Извени Vit, нехотел тебя обидеть, до меня и до самого сразу недошло что от типа многое зависит, покрайней мере в данном случае... Просто мне обычно когда требется избавится от ошибок в/выв, то на ум всегда первое что приходит ─ отключение на их проверку, а дальше что-нибудь ещё предумывать приходится... Ещё раз, извени... Это сообщение отредактировал(а) Zero - 17.12.2004, 23:35 |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
![]() ![]() -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |