Здравствуйте, Abyx, Вы писали:
A>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?
из вики
операционных системах DOS и Windows фирмы Microsoft и их аналогах других разработчиков, обратная косая используется для разделений имён директорий (каталогов) при указании пути к файлу. Прямая косая, применяемая для этого в Unix не могла быть использована в MS-DOS, потому что уже была задействована для указания ключей командной строки (оставшегося в наследство от CP/M, где MS-DOS команда "dir /w" писалась как "dir/w").
Здравствуйте, Abyx, Вы писали:
A>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?
Мне в строковых переменных не приходится ничего такого писать:
Здравствуйте, Abyx, Вы писали:
A>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?
Пользуйтесь правильными языками и этого не нужно будет делать
A>>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?
__>Пользуйтесь правильными языками и этого не нужно будет делать
Выносите это в настройки приложения ибо не фиг харкодить пути
Здравствуйте, Abyx, Вы писали:
A>Коллеги, объясните зачем в windows разделитель пути это обратный слеш,
так сложилось исторически, еще со времен DOS
A>из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?
в C-подобных языках символ "\" имеет специальное значение (escape character), если встречается в стркоровых литералах, (например \n, \0xFF, \077 и т д). Чтобы в строке использовать сивол сам по себе, его нужно удваивать
Здравствуйте, Abyx, Вы писали:
A>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?
Коллеги, объясните зачем для эскейпинга в строках используется обратный слеш, из за чего в строковых литералах для путей в файловой истеме приходится писать "пути\\через\\два\\слеша" ?
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, Abyx, Вы писали:
A>>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?
L>Коллеги, объясните зачем для эскейпинга в строках используется обратный слеш, из за чего в строковых литералах для путей в файловой истеме приходится писать "пути\\через\\два\\слеша" ?
Ну когда делали Си (в 71-73), никому из разумных в голову не пришло, что какой-то безумец через 10 лет будет использовать бэкслэш для путей...
А внутренний квотинг в строке никогда не был лучшим путём, он и без Windows имеет свои проблемы (излишняя грамматичность).
Здравствуйте, alexsoff, Вы писали:
A>>>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?
__>>Пользуйтесь правильными языками и этого не нужно будет делать ;)
A>Выносите это в настройки приложения ибо не фиг харкодить пути :maniac:
Даже если никто не хардкодит пути как таковые, можно хардкодить имена подкаталогов (и вот это как раз то чему обычно делать нечего в настройках приложений — лучше их фиксировать, чем давать переделывать во что угодно и потом грести проблемы от этого). Внутренняя структура хранилища — дело хранилища в целом.
А вот что имеет смысл делать — так это не зашивать фиксированный разделитель пути, а пользоваться библиотеками.
Ибо завтра придётся переделывать под iOS или Android, в которых разделитель пути не придуман по принципу "сделаем через зад, лишь бы отцепились", или же под внезапно ожившие VMS или OS/400 :)
N>Даже если никто не хардкодит пути как таковые, можно хардкодить имена подкаталогов (и вот это как раз то чему обычно делать нечего в настройках приложений — лучше их фиксировать, чем давать переделывать во что угодно и потом грести проблемы от этого).
Ага, особенно если в подкаталогах хранятся данные, к которым идет постоянный on-line доступ, вот хотели мы засунуть на ssd, а тут нет -разработчики "удружили".
Или более типичные ошибки , программа установлена в Program Files и пишет в свой под каталог данные — приходится для нее постоянно из админа запускать
Здравствуйте, alexsoff, Вы писали:
N>>Даже если никто не хардкодит пути как таковые, можно хардкодить имена подкаталогов (и вот это как раз то чему обычно делать нечего в настройках приложений — лучше их фиксировать, чем давать переделывать во что угодно и потом грести проблемы от этого). A>Ага, особенно если в подкаталогах хранятся данные, к которым идет постоянный on-line доступ, вот хотели мы засунуть на ssd, а тут нет -разработчики "удружили".
Мнэээ... слово "обычно" означает программы, коих >99% и у которых таких проблем не бывает... а вообще пользуйтесь симлинками:)
A>Или более типичные ошибки , программа установлена в Program Files и пишет в свой под каталог данные — приходится для нее постоянно из админа запускать :maniac:
Здравствуйте, Abyx, Вы писали:
A>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?
Пишите через прямые, так тоже работает.
Вы мне лучше объясните, как это в письменную речь проникло? Не замечали, что теперь народ уже в человеческих, а не компьютерных, текстах частенько использует обратный слеш заместо прямого?
Здравствуйте, netch80, Вы писали:
N>А вот что имеет смысл делать — так это не зашивать фиксированный разделитель пути, а пользоваться библиотеками. N>Ибо завтра придётся переделывать под iOS или Android, в которых разделитель пути не придуман по принципу "сделаем через зад, лишь бы отцепились", или же под внезапно ожившие VMS или OS/400
Хм. У iOS и Android'а вроде как уних под капотом. Соответственно, и разделители пути юниксовские. А что до VMS и OS/400, я не уверен, что у них вообще такая штука есть.
А что за эти волшебные библиотеки, о которых идет речь?
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, dilmah, Вы писали:
D>>в дополнение: afaik в функциях типа fopen таки можно писать прямые слеши -- они автоматом преобразуются в обратные.
Pzz>Это и в венде и в MS-DOS'е сделано на уровне системных вызовов.
Вот если бы можно было системным вызовом менять возвращаемое и для всяких GetCurrentDirectory(), был бы смысл.
А так — непонятный костыль.
Pzz>Вы мне лучше объясните, как это в письменную речь проникло? Не замечали, что теперь народ уже в человеческих, а не компьютерных, текстах частенько использует обратный слеш заместо прямого? :-)
Это зомби ;)
Pzz>Хм. У iOS и Android'а вроде как уних под капотом. Соответственно, и разделители пути юниксовские.
Дык.
Pzz> А что до VMS и OS/400, я не уверен, что у них вообще такая штука есть.
В VMS двоеточие, в OS/400, кажется, точка (не уверен)
Pzz>А что за эти волшебные библиотеки, о которых идет речь? :-)
Да хоть самому написать;) но вот например в питоне есть готовые функции типа "склеить две части пути".
Здравствуйте, Pzz, Вы писали:
Pzz>Вы мне лучше объясните, как это в письменную речь проникло? Не замечали, что теперь народ уже в человеческих, а не компьютерных, текстах частенько использует обратный слеш заместо прямого?
Главное, чтобы двойные слеши в письменной речи появляться не начали
Здравствуйте, Pzz, Вы писали:
Pzz>Вы мне лучше объясните, как это в письменную речь проникло? Не замечали, что теперь народ уже в человеческих, а не компьютерных, текстах частенько использует обратный слеш заместо прямого?
Раскладку переключать не надо.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)