22.09.2004, 14:01 | #1 |
Участник
|
удвоение служебного символа \ в строке
Подскажите пожалуйста.
Как в строке с путем к файлу заменить все символы "\" на "\\" (два символа). Нужно для открытия из Аксапты текстового файла. Всем спасибо. |
|
22.09.2004, 14:23 | #2 |
экс-модератор
|
strReplace(string, "\\", "\\\\");
|
|
22.09.2004, 14:24 | #3 |
1C
|
Что то пока не понятно. Если просто в текстовой переменно произвести операцию замены то это так.:
PHP код:
|
|
22.09.2004, 15:19 | #4 |
Участник
|
удвоение служебного символа \ в строке
Нет, к сожалению не работает ни один из советов.
в строке "c:\folder\template.txt" Аксапта считает "\t" и "\f"одним символом. строка pointPosition = strScan(_myString, "\", 1, strLen(_myString)); не компилируется т. к. второй параметр "\" не является строкой или символом (это служебный символ). strReplace(string, "\\", "\\\\"); при string = "c:\template.txt" возвращает "emplate.txt". Что делать не знаю. Подскажите пожалуйста. |
|
22.09.2004, 15:33 | #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 тоже не дурак , он совсем не то вам хотел сказать, просто форум съедает обратные слэши в коде |
|
22.09.2004, 15:58 | #6 |
Участник
|
Re: удвоение служебного символа \ в строке
Цитата:
Изначально опубликовано Miktel
строка pointPosition = strScan(_myString, "\", 1, strLen(_myString)); не компилируется |
|
22.09.2004, 20:48 | #7 |
Участник
|
Действительно, есть разница откуда получена строка.
Если она получена из диалога выбора файла , то strReplace(stringFromDialog, "\\", "\\\\"); работает замечательно. А если задать st = "c:\folder\template.txt"; st = replaceStr(st,"\\","\\\\"); то не работает. Хотя не понятна принципиальная разница между такими строками. Большое спасибо. Мне помогло. |
|
22.09.2004, 21:13 | #8 |
экс-модератор
|
просто вот так - "\t" в строку вставляется символ табуляции. а чтобы вставить в строку бэкслэш, надо написать "\\"
а теперь следующий шаг - все вышеописанное вам нафиг не нужно если вы получаете имя файла из диалога - заменять в нем бэкслэши на удвоенные не надо если не из диалога - удваивайте слэши прямо в коде |
|