нужно объяснение | |
---|---|
axeum Автор Сообщений: 107 Дата регистрации: 07.07.2020 |
Исправлено 2 раз(а). Последнее : axeum, 04.10.21 06:28 |
Re: нужно объяснение | |
---|---|
Taran Сообщений: 13626 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Таковы особенности макро.
В любом случае если что-либо можно сделать отличным от макро способом, то так и надо делать. |
Re: нужно объяснение | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
FAQ FoxPro. Как работать с путями доступа и именами файлов, содержащих пробелы
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) Исправлено 1 раз(а). Последнее : Joys, 04.10.21 08:54 |
Re: нужно объяснение | |
---|---|
axeum Автор Сообщений: 107 Дата регистрации: 07.07.2020 |
а рзаве макро это плохо? |
Re: нужно объяснение | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Никогда и не было особенно хорошим. Макроподстановка ------------------ Лень - это неосознанная мудрость. |
Re: нужно объяснение | |
---|---|
axeum Автор Сообщений: 107 Дата регистрации: 07.07.2020 |
если я правильно понял то результат будет одинаковым?
Исправлено 1 раз(а). Последнее : axeum, 04.10.21 10:06 |
Re: нужно объяснение | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Это не сложно. Если вы пишете макро - &lcPath, то после подстановки получается:
Далее должна идти опция TO, а идет непонятно что. Если вы пишете (lcPath), то с синтаксисом всё Ok:
А чтобы и с макро Фокс видел выражение, требуется заключить такое имя файла в кавычки, то есть задать его строковой константой:
Естественно, можно и заранее добавить кавычки к переменной lcpath
|
Re: нужно объяснение | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Макро здесь вообще ни при чём - при чём то, что получается в результате макроподстановки. Исправлено 1 раз(а). Последнее : akvvohinc, 04.10.21 11:58 |
Re: нужно объяснение | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
А если я правильно понял написанное, то - нет. |
Re: нужно объяснение | |
---|---|
Sawradym Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
COPY FILE "&lcpath" TO файл2 - Здесь нет макроподстановки, а есть строка "&lcpath" в качестве имени файла.
|
Re: нужно объяснение | |
---|---|
axeum Автор Сообщений: 107 Дата регистрации: 07.07.2020 |
Исправлено 2 раз(а). Последнее : axeum, 04.10.21 12:58 |
Re: нужно объяснение | |
---|---|
axeum Автор Сообщений: 107 Дата регистрации: 07.07.2020 |
всем спасибо за помощь
|
Re: нужно объяснение | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Не совсем так - макроподстановка есть. Компилятор оформляет (компилирует) эту команду как макроподстановку. А при выполнении происходит следующее: 1. Если переменная макроподстановки существует, то подстановка выполняется "нормальным образом" (в том числе будет выдано сообщение об ошибке, если она будет). 2. Иначе Фокс попробует трактовать &lcpath как имя файла и выполнит команду, если такой файл существует. |
Re: нужно объяснение | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Способов "приклеить" кавычки к строке достаточно, например:
Исправлено 1 раз(а). Последнее : akvvohinc, 04.10.21 13:32 |
Re: нужно объяснение | |
---|---|
Taran Сообщений: 13626 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Шедеврально как всегда. В луже пук. В чем ты хочешь со мной поспорить? ... И далее в теме портянка про кавычки для использования в макро. Хочется похвастать знанием трёх методов добавления кавычек? Сплошной засер мозгов вместо прямого использования функций. А макро лишь когда совсем никак. Но, учитывая уровень ТС (не в обиду), это не скоро. Исправлено 1 раз(а). Последнее : Taran, 04.10.21 18:45 |
Re: нужно объяснение | |
---|---|
Sawradym Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Да, тьі прав, я не прав. Оказьівается опасная штука єтот "&". |
Re: нужно объяснение | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Да ни о чём. Я лишь написал, что макро к ошибке ТС не имеет никакого отношения. Кроме того, макро не имеет никаких особенностей - обычная замена одних символов другими. А доказывать, что барабашка существует должен тот, кто её придумал. |
Re: нужно объяснение | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
На мой взгляд, "опасно" другое - в Фоксе есть такие конструкции - например, "имя файла", "имя алиаса", которые можно задавать не только с помощью выражения, а, скажем так, "напрямую" (не знаю, как правильно это называется, подскажите!). Что я имею в виду: Например, "имя файла" или "имя алиаса" - это строка. Даже в Хелпе написано:
В "нормальных" (на мой взгляд) языках допустимым будет только второй вариант. Именно из-за этого, а не из-за наличия макро, возникают "непонятки", подобные той, что обсуждается в этой теме! Поэтому я не совсем согласен с объяснением Владимира, зачем-то делающего упор на наличие/отсутствие "кавычек" в FAQ FoxPro. Как работать с путями доступа и именами файлов, содержащих пробелы : Цитата: Такое объяснение больше похоже на "шаманство" - напиши кавычки, и всё будет Ok. Я бы сделал основной упор на то, что кавычки (и не только они) превращают "имя файла" в строковое выражение, коим и является "имя файла". А то, что в некоторых случаях Фокс понимает "имя файла" и без наличия такого выражения - ну, что ж, простим ему этот недостаток. Исправлено 2 раз(а). Последнее : akvvohinc, 04.10.21 21:08 |
Re: нужно объяснение | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
В любом случае это особенность работы макро - с выражением имени (то что в скобках) не возникает неоднозначностей - там всё чётко - одно выражение имени это один параметр. А в макро это может быть всё что угодно, включая кучу параметров, опций команды и собственно саму команду. К сожалению не везде возможно обойтись без макро. В командах копирования для указания имён файлов - можно. А значит и нужно. И не париться с кавычками
------------------ WBR, Igor |
Re: нужно объяснение | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Это всё равно, что сказать - "Ошибка в команде:
С какой стати неверное значение переменной макроподстановки является особенностью самого макро? Или кто-то ожидает, что такой командой можно загнать имя файла в переменную?
Если нет, то очевидно, что макро здесь ни при чём. Просто в макропеременной должно быть значение, которое после подстановки приводит к получению правильной команды. И если именно это вы называете "особенностью макро", то могу лишь добавить, что любую команду - с макро или без макро - надо писать не менее "особенно". Исправлено 1 раз(а). Последнее : akvvohinc, 04.10.21 23:59 |
© 2000-2024 Fox Club  |