![]() |
#1 |
Участник
|
удвоение служебного символа \ в строке
Подскажите пожалуйста.
Как в строке с путем к файлу заменить все символы "\" на "\\" (два символа). Нужно для открытия из Аксапты текстового файла. Всем спасибо. |
|
![]() |
#2 |
экс-модератор
|
strReplace(string, "\\", "\\\\");
|
|
![]() |
#3 |
1C
|
Что то пока не понятно. Если просто в текстовой переменно произвести операцию замены то это так.:
PHP код:
|
|
![]() |
#4 |
Участник
|
удвоение служебного символа \ в строке
Нет, к сожалению не работает ни один из советов.
в строке "c:\folder\template.txt" Аксапта считает "\t" и "\f"одним символом. строка pointPosition = strScan(_myString, "\", 1, strLen(_myString)); не компилируется т. к. второй параметр "\" не является строкой или символом (это служебный символ). strReplace(string, "\\", "\\\\"); при string = "c:\template.txt" возвращает "emplate.txt". Что делать не знаю. Подскажите пожалуйста. |
|
![]() |
#5 |
экс-модератор
|
мой работает
![]() откуда у вас берется строка "c:\folder\template.txt" ? если вы ее прямо в коде пишете str a="c:\folder\template.txt", то и не должно работать, надо сразу писать с удвоенными слэшами если-же она приходит из формы, считывается откуда либо итп, короче не выражена в виде х++ строковых литералов, то все должно работать у меня вот такой код отрабатывает правильно static void Job3(Args _args) { str a; dialog d = new dialog(); dialogField df; ; df = d.addField(typeId(fileNameOpen)); d.run(); a = df.value(); info (a); a = strReplace(a, "\\", "\\\\"); info (a); } yvas тоже не дурак ![]() ![]() |
|
![]() |
#6 |
Участник
|
Re: удвоение служебного символа \ в строке
Цитата:
Изначально опубликовано Miktel
строка pointPosition = strScan(_myString, "\", 1, strLen(_myString)); не компилируется |
|
![]() |
#7 |
Участник
|
Действительно, есть разница откуда получена строка.
Если она получена из диалога выбора файла , то strReplace(stringFromDialog, "\\", "\\\\"); работает замечательно. А если задать st = "c:\folder\template.txt"; st = replaceStr(st,"\\","\\\\"); то не работает. Хотя не понятна принципиальная разница между такими строками. Большое спасибо. Мне помогло. |
|
![]() |
#8 |
экс-модератор
|
просто вот так - "\t" в строку вставляется символ табуляции. а чтобы вставить в строку бэкслэш, надо написать "\\"
а теперь следующий шаг - все вышеописанное вам нафиг не нужно ![]() если вы получаете имя файла из диалога - заменять в нем бэкслэши на удвоенные не надо ![]() ![]() |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|