Форум: "Начинающим";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
ВнизПроверка на наличие файлов Найти похожие ветки
← →
Делфёст (2005-11-14 16:09) [0]Подскажите плз как проверить на существование определенного файла в определенной папке и выполнить необходимые инструкции если он есть
← →
Zeqfreed © (2005-11-14 16:16) [1]Делфёст (14.11.05 16:09)
if FileExists("filename") then ;
← →
Leonid Troyanovsky © (2005-11-14 16:18) [2]
> Делфёст (14.11.05 16:09)
> Подскажите плз как проверить на существование определенного
> файла в определенной папке и выполнить необходимые инструкции
> если он есть
Надо выполнять необходимые инструкции с файлом.
А если его нет, то обработать возникшее исключение (Exception).
Т.е., проверка (FileExists) - лишняя, потому как между ней и
инструкциями может пройти немало колов времени.
--
Regards, LVT.
← →
Zeqfreed © (2005-11-14 17:07) [3]Leonid Troyanovsky © (14.11.05 16:18) [2]
А если необходимо пропиликать гимн Советского Союза при нахождении некоего файла в каталоге? :)
← →
Leonid Troyanovsky © (2005-11-14 17:32) [4]
> Zeqfreed © (14.11.05 17:07) [3]
> А если необходимо пропиликать гимн Советского Союза при
> нахождении некоего файла в каталоге? :)
Если оный гимн находится в искомом файле, то смело применяем [1].
А при возникшем исключении поем самостоятельно.
Хотя, конечно, в исходном вопросе инструкции не привязывались
к самому файлу. Каюсь :)
--
Regards, LVT.
← →
Leonid Troyanovsky © (2005-11-14 17:39) [5]
> Leonid Troyanovsky © (14.11.05 17:32) [4]
> Если оный гимн находится в искомом файле, то смело применяем
> [1].
Млин. Ну, конечно, я пытался сослаться на [2], бо [1] исключений не
вызовет. {Вот оно - воздаяние за склонность к самоцитированию,
неукоснительно ведущей к гордыне}
> к самому файлу. Каюсь :)
Каюсь.
--
Regards, LVT.
← →
Zeqfreed © (2005-11-14 17:50) [6]Leonid Troyanovsky © (14.11.05 17:39) [5]
А, ну тогда все понятно. А то [4] меня несколько запутало :)
← →
Игорь Шевченко © (2005-11-14 17:57) [7]Leonid Troyanovsky © (14.11.05 16:18) [2]
> Надо выполнять необходимые инструкции с файлом.
> А если его нет, то обработать возникшее исключение (Exception).
>
Я наверное грешен, но делаю так иногда:
AssignFile (F, "foo");
if FileExists("foo") then
Append(F)
else
Rewrite(F);
Как мне в этом случае последовать твоему совету ?
← →
Leonid Troyanovsky © (2005-11-14 18:23) [8]
> Игорь Шевченко © (14.11.05 17:57) [7]
> > А если его нет, то обработать возникшее исключение (Exception).
> Я наверное грешен, но делаю так иногда:
TFileStream - forever.
Время текстовых файлов ушло :)
--
Regards, LVT.
← →
Zeqfreed © (2005-11-14 18:24) [9]Игорь Шевченко © (14.11.05 17:57) [7]
AssignFile(f, "filename");
try
Append(f);
except
on E : EInOutError do begin
if (E.ErrorCode = 2) then Rewrite(f);
end;
end;
?
← →
Anatoly Podgoretsky © (2005-11-14 19:24) [10]Игорь Шевченко © (14.11.05 17:57) [7]
Сложный вопрос, он может пропасть в промежутке и тогда ошибка при Append и еще хуже если он появится в этом промежутке, тогда он будет заменен пустым. Но как быть для текстовых файлов вопрос сложный, поскольку и обработка исключения не решает проблемы.
← →
Игорь Шевченко © (2005-11-15 10:15) [11]Leonid Troyanovsky © (14.11.05 18:23) [8]
> TFileStream - forever.
> Время текстовых файлов ушло :)
Мне в ряде случаев writeln привычнее. Методы работы с файлами, они же не черствеют от времени, верно ? :)
Zeqfreed © (14.11.05 18:24) [9]
1) Сравни, где больше строчек
2) Сравни, какой код яснее
3) Сравни, где среда будет реагировать на исключение совершенно попусту, останавливая выполнение программы.
Anatoly Podgoretsky © (14.11.05 19:24) [10]
Программа, пользующая файл, одна - применение простое - протокол пишется, надо дописывать в конец файла, если файл уже есть :)
← →
GuAV © (2005-11-16 16:17) [12]>Игорь Шевченко ©
TFileStream + Format, formatом можно всё, что можно writeln.
Как ещё вариант - предварительно создавать CreateFile с запретом только на удаление, после чего Append.
← →
Игорь Шевченко © (2005-11-16 16:53) [13]GuAV © (16.11.05 16:17) [12]
> TFileStream + Format, formatом можно всё, что можно writeln
И перевод строки не забывать в конце указывать, верно ?
А можно узнать, какой выигрыш будет от такой рекомендации ?
Какой ситуации она позволит избежать, например.
← →
GuAV © (2005-11-16 20:35) [14]
> И перевод строки не забывать в конце указывать, верно ?
Разумеется, но "не забывать", а не забыть.
> А можно узнать, какой выигрыш будет от такой
>рекомендации ?
> Какой ситуации она позволит избежать, например.
[10] ?
← →
Игорь Шевченко © (2005-11-17 10:15) [15]GuAV © (16.11.05 20:35) [14]
> [10] ?
> Как ещё вариант - предварительно создавать CreateFile с
> запретом только на удаление, после чего Append
Тут такой момент - вероятность ситуации в [10] настолько мала, что городить огород из-за нее, я полагаю, не имеет смысла. Для ситуации [10] имеется другой способ - отдельный процесс, занимающийся записью в файл, постоянно захвативший этот файл, переключающий файлы для записи по определенному алгоритму (для примера - EventLog service). Вот там действительно исключена ситуация [10]
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.055 c