![]() |
:: Главная :: Решения :: Статьи :: Проект "Русский help" :: Файловый архив :: Фотоальбом :: Ссылки :: | ![]() |
![]() |
Л и с о в о д ы в с е х с т р а н, о б ъ е д и н я й т е с ь !!! |
Как работать с путями доступа и именами файлов, содержащих пробелы | ||
---|---|---|
Вопрос
При использовании путей доступа или имен файлов, содержащих пробелы, я получаю сообщения об ошибках. Как работать с путями доступа и именами файлов, содержащих пробелы? Ответ В общем случае следует обрамлять такие имена кавычками или использовать выражения имени. Например, на Вашем компьютере есть файл по такому пути доступа: Цитата: Если Вы хотите обратиться к такому файлу напрямую, по имени, то это следует делать так: MODIFY FILE "C:\Мои документы\Мой файл.txt" Если Вы считали это имя в переменную памяти, например, при помощи функции GetFile() или имя директории при помощи функции GetDir(), то следует использовать выражение имени. Скобки. LOCAL lcFileName lcFileName = GetFile() MODIFY FILE (m.lcFileName) В принципе, можно использовать и символ макроподстановки. Но в этом случае нужно достаточно хорошо понимать, что именно происходит в этом случае. Дело в том, что при использовании символа макроподстановки происходит формальная замена переменной памяти на тот текст, который в ней записан. Другими словами код LOCAL lcFileName lcFileName = "C:\Мои документы\Мой файл.txt" MODIFY FILE &lcFileName фактически преобразуется в такой код MODIFY FILE C:\Мои документы\Мой файл.txt Далее вступает в действие синтаксический анализатор кода. Для него имя файла - это параметр команды. А параметры, в данном случае, отделяются друг от друга пробелами. Следовательно, FoxPro прочитает данную команду следующим образом: MODIFY FILE C:\Мои Разумеется, ни такой директории, ни имени файла не существует. И Вы получаете сообщение об ошибке. Чтобы предотвратить подобное развитие событий, необходимо добавить дополнительные кавычки LOCAL lcFileName lcFileName = ["C:\Мои документы\Мой файл.txt"] MODIFY FILE &lcFileName Этот код будет прочитан следующим образом MODIFY FILE "C:\Мои документы\Мой файл.txt" Вот здесь уже все в полном порядке. Параметр - это то, что ограничено кавычками. Хотя, разумеется, использование дополнительных кавычек не слишком удобно. Поэтому проще при работе с именами файлов использовать выражения имени. Т.е. скобки. В этом случае Вы автоматически страхуетесь от возможных пробелов в именах файлов и путях доступа. LOCAL lcFileName lcFileName = "C:\Мои документы\Мой файл.txt" MODIFY FILE (m.lcFileName) Исправлено 1 раз(а). Последнее : Владимир Максимов, 22.02.06 22:02 ![]() |
||
Тема | Просмотров | Написано | Написано |
---|---|---|---|
![]() |
5427 | Владимир Максимов | 01.03.05 22:02 |
![]() ![]() |
9579 | Владимир Максимов | 22.03.05 10:41 |
![]() ![]() |
13523 | Владимир Максимов | 20.04.05 18:31 |
![]() ![]() |
15519 | Владимир Максимов | 01.05.05 12:17 |
![]() ![]() |
9521 | Владимир Максимов | 25.09.05 13:31 |
![]() ![]() |
7714 | Владимир Максимов | 22.02.06 22:00 |
![]() ![]() |
17766 | Владимир Максимов | 04.03.07 14:17 |
![]() ![]() |
10492 | Владимир Максимов | 25.02.08 18:32 |
© 2006 Fox Club  |