Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> I\O Error 105, как избавиться 
:(
    Опции темы
Штабс
Дата 14.12.2004, 16:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Пипл срочно надо избавиться от этой ошибки

код вроде верный

try

AssignFile(f, FileName);
Reset(f);
except
Rewrite(f) ;
end;

Файл существует
но на любую попытку скинуть в него хоть что то мессадже

I\O Error 105

что не так?!
  Вверх
Bes
Дата 14.12.2004, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



Подожди, т.е. теоретически возможна команда ReWrite без Assign-а?...
Это ли не ошибка?
Тем более если файл существует, то он откроется для чтения и понятно, что писать он в себя ничего не дает это ошибка два.

PM MAIL   Вверх
Штабс
Дата 14.12.2004, 16:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
Дата 14.12.2004, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



Че-то я не пойму:
что за конструкция, для чего она, или я чего-то не понимаю или она лишена логики. т.е. программа должна попробовать открыть файл для чтения и если не получилось то открыть для записи....? Странно как-то это.

try
Reset(f);
except
Rewrite(f) ;
end;

а почему отрабатывает Rewrite(f) ; т.е. для чтения он открытьсяне может?
а для записи может?.....

далее WriteLn(f,BlaBlaBlaBlaBlaBlaBla)
BlaBlaBlaBlaBlaBlaBla-это переменная или имеется ввиду WriteLn(f,'BlaBlaBlaBlaBlaBlaBla')?

Мне кажется но все-таки открывается для чтения и ругается при попытке записать что-либо в него, что вообщем-то естественно.

PM MAIL   Вверх
devmstr
Дата 14.12.2004, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 28.4.2004
Где: Ukraine

Репутация: 2
Всего: 11



Если хочешь писать пиши:
Код


AssignFile(f, FileName);

Rewrite(f);

write(f, '.....');
end;

[s]


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
Vit
Дата 14.12.2004, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
PM MAIL WWW ICQ   Вверх
Zero
Дата 15.12.2004, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Собственно по ошибкам в/в, можно исп. дерективы компилятора {$I-} и {$I+}
Добавлено @ 02:05
Цитата(Vit @ 14.12.2004, 18:01)
f - какого типа?

Имхо, тип здесь не играет особой роли...
PM MAIL ICQ   Вверх
Vit
Дата 15.12.2004, 03:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(Zero @ 14.12.2004, 17:00)
Имхо, тип здесь не играет особой роли...



Считаешь что мне делать нечего?


--------------------
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
PM MAIL WWW ICQ   Вверх
Vit
Дата 15.12.2004, 03:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Ошибка в общем-то проста и очевидна, я не зря про тип спрашивал, не совсем был уверен, хотя и догадывался откуда ноги растут, сейчас добрался до Дельфи проверил...

Вот код:

Код

 var f:TextFile;
begin
 AssignFile(f, 'c:\myfile.txt');
 Reset(f);
 write(f, 'sssss');
end;


Если этот код запустить, и файл '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
PM MAIL WWW ICQ   Вверх
Bes
Дата 15.12.2004, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



Об чем и говорим на каждом собрании... :-)
PM MAIL   Вверх
Штабс
Дата 16.12.2004, 13:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Только что вернулся от заказчика....
прошу извинить за долгое молчание

и так
тип файла
My_File:TextFile
т.е. текстовой

Директивы компилятора {$I} позволяют отлавливать Error Code
2: Файл не найден
3: Неверное имя
4: Слишком много открытых файлов
5: Файл не доступен
100: Достигнут конец файла (EOF)
101: диск переполне
106: ошибка ввода

105 относится к расширенной таблице ошибок

Если этот код запустить, и файл 'c:\myfile.txt' существует, то получим эту самую ошибку 105. Почему? До потому что reset не открывает текстовые файлы на запись! только на чтение. Для записи текстовый файл должен быть открыт только rewrite или append. Вот и все проблемы!

спасибо VIT
большое
но насчет очевидности
smile
я к примеру не знал этого ....
хотя стаж еше с TP4
еще раз большое спасибо





  Вверх
Vit
Дата 16.12.2004, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата
но насчет очевидности

я к примеру не знал этого ....
хотя стаж еше с TP4



smile У меня опыт больше! Я с TP3 smile


--------------------
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
PM MAIL WWW ICQ   Вверх
devmstr
Дата 16.12.2004, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 28.4.2004
Где: Ukraine

Репутация: 2
Всего: 11



Vit
Приятно, когда тебя окружают такие проффесионалы! smile


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
Zero
Дата 17.12.2004, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата(Vit @ 15.12.2004, 03:06)
Считаешь что мне делать нечего?

Извени Vit, нехотел тебя обидеть, до меня и до самого сразу недошло что от типа многое зависит, покрайней мере в данном случае...
Просто мне обычно когда требется избавится от ошибок в/выв, то на ум всегда первое что приходит ─ отключение на их проверку, а дальше что-нибудь ещё предумывать приходится...
Ещё раз, извени...

Это сообщение отредактировал(а) Zero - 17.12.2004, 23:35
PM MAIL ICQ   Вверх
Vit
Дата 19.12.2004, 05:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(Zero @ 17.12.2004, 14:34)
Ещё раз, извени...



smile Не страшно, сам такие ляпы делаю систематически smile


--------------------
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
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1262 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.