Здравствуйте.
Нужна помощь... Как открыть файл, не зная его имя (задан только каталог, где находится)...
Заранее спасибо.
Файлы |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Файлы |
Unreal |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 15 Репутация: 0 |
Здравствуйте.
Нужна помощь... Как открыть файл, не зная его имя (задан только каталог, где находится)... Заранее спасибо. |
Altair |
Сообщение
#2
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Какие-то данные о файле все же нужны.
Открыть его можно, в следующих случаях:
FindFirst и в некоторых случаях FindNext. Обе они находятся в модуле DOS. То есть для их использования, подключаем его: Код Uses Dos, {... другие модули}; {...} Вызывается процедура следующим образом: в разделе переменных, надо описать переменную, с типом SearchRec Например: Код Uses DOS; {...}Var A: SearchRec; {... другие переменные} Теперь в программе мы можем вызвать процедуру FindFirst: Код {...} Begin FindFirst('*.TXT',AnyFile,A); {...} end. Поясняю: Мы ищем ПЕРВЫЙ файл с расширением TXT в текущем каталоге, который может иметь любые(AnyFile) атрибуты. Данные о файле (если он найден), помещаются в переменную A (она имеет тип SearchRec). Тип SearchRec имеет следующую структуру: Код Type SearchRec = Record Fill : Array [1..21] Of Byte; Attr : Byte; Time : Longint; Size : Longint; Name : Array [0..12] Of Char; End; Если файл не найден, то в переменную DosError помещается код ошибки 18 (нет больше файлов). Если нам надо продолжить поиск (какие-то условия нас не устраивают), то мы вызываем процедуру FindNext ... Но для ее вызова уже не надо указывать тип искомых файлов( их маску и атрибуты). Процедура FindNext вызывается всегда только после FindFirst. Теперь, когда нужный файл найден: Код { связываем файловую переменную с именем этого файла } Assign (f,a.name); { и открываем его } Reset(f) Примечание: Если файл текстовый, то открыть его таким образом можно только на чтение, или только на дозапись. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Текстовая версия | 29.04.2024 21:37 |