Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
4-1127144763
incm
2005-09-19 19:46
2005.12.04
Как преобразовать jpg в bmp, при этом используя минимум ресурсов?


2-1132031785
froz
2005-11-15 08:16
2005.12.04
TXMLDocument!


14-1131842407
Gero
2005-11-13 03:40
2005.12.04
Запрет анонимам постить в «Потрепаться»


14-1131998554
vrem
2005-11-14 23:02
2005.12.04
Нежелание видеть грустное - это болезнь?


2-1132068213
PAI
2005-11-15 18:23
2005.12.04
Довольно большая программа понемногу, но "подъедает" память.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский