создание файла в той же директории...

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Аватара пользователя
Новенький
Сообщения: 73
Зарегистрирован: 01 июн 2007, 17:35
Откуда: Чусовой (Пермский край)
Контактная информация:

Как в Паскале прописать в операторе assign(f,'?'), чтоб файл создавался в той же директории, где и сам файл .pas
Программирование - хорошая штука
Iurii
Сообщения: 5
Зарегистрирован: 26 май 2007, 15:26

Новенький писал(а):Как в Паскале прописать в операторе assign(f,'?'), чтоб файл создавался в той же директории, где и сам файл .pas
я паскаль не знаю )))
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

".\filename.ext"
С уважением, Lost Angel...
Аватара пользователя
SergeyS
Сообщения: 196
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

ParamStr(0) - возвращает имя исполняемого файла, от него уже можно скакать, а то при выполнении pas файла текущей папкой может быть что угодно и ".\" не даёт полной гарантии
Аватара пользователя
Новенький
Сообщения: 73
Зарегистрирован: 01 июн 2007, 17:35
Откуда: Чусовой (Пермский край)
Контактная информация:

SergeyS, а куда этот параметр прописать и как? (ParamStr(0))
Программирование - хорошая штука
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

Новенький,
ParamStr (0) - это функция, возвращающая строку.
Точнее, функция - это ParamStr, а если ей параметром передать 0, то она вернет полное имя (с путем) запущенного EXE-файла.
Далее, если в этой стороке найти первый с конца символ '\', то содержимое от начала строки до этого символа будет представлять имя каталога, из которого запущен EXE-файл. Теперь, если к нему добавить нужное тебе имя файла, то полцчим искомое: имя файла в той же директории, что и запущенный EXE-файл (т.е. что ты хотел, как я понял, передавать в assign)
Аватара пользователя
Новенький
Сообщения: 73
Зарегистрирован: 01 июн 2007, 17:35
Откуда: Чусовой (Пермский край)
Контактная информация:

BBB,
т.е. это будет выглядеть так assign(f, ParamStr (0))?
Программирование - хорошая штука
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

Новенький писал(а):т.е. это будет выглядеть так assign(f, ParamStr (0))?
Нет, не так. ParamStr (0) (в третий раз уже пишут) - это полное имя исполняемого (т.е. *.EXE) файла.
Если тебе нужен именно он, то да. В общем случае (если тебе нужен произвольный файл в той же директории, откуда стартовала программа, т.е. где лежит EXE-файл твоей программы) - нет.

Пример. ParamStr (0) вернет что-то наподобие этого:

C:\MyFile\Delphi\MyProg\MyProg.EXE
Аватара пользователя
Новенький
Сообщения: 73
Зарегистрирован: 01 июн 2007, 17:35
Откуда: Чусовой (Пермский край)
Контактная информация:

все, теперь точно понял, благодарю!
Программирование - хорошая штука
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Вообще если я не ошибаюсь, если написать assign(f,'file.txt'), то и файл найдется в той же директории, где и запускаемая программа. Это если прога скомпилирована в виде exe-файла.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить