| 
			
			 | 
		#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" в строку вставляется символ табуляции. а чтобы вставить в строку бэкслэш, надо написать "\\" 
		
		
		
		
		
		
		
	а теперь следующий шаг - все вышеописанное вам нафиг не нужно ![]() если вы получаете имя файла из диалога - заменять в нем бэкслэши на удвоенные не надо   если не из диалога - удваивайте слэши прямо в коде  
		 | 
| 
	
 |