Вход | Регистрация



Есть ли какой-нить редактор строки в строке в строке (кавычки в кавычках)?

Есть ли какой-нить редактор строки в строке в строке (кавычки в кавычках)?
Я
   SeiOkami
 
20.09.16 - 10:52
Имеем строку, которую передаём как параметр в процедуру. В тексте строки есть строка. А в этой строке есть другая строка. А где-то там ещё лежит знак кавычки. Так вот: есть ли что-нить облегчающее работу с такими вложенными строками, а то постоянно путаюсь в кавычках
 
 
   Лефмихалыч
 
1 - 20.09.16 - 10:53
Новый COMОбъект("Vbscript.Regexp")
   Волшебник
 
Модератор
2 - 20.09.16 - 10:53
извращенец...
   Волшебник
 
Модератор
3 - 20.09.16 - 10:54
а = "строка1";
б = "строка 2" + а + "строка 2.2"
в = б + а;
и т.д.
   НЕА123
 
4 - 20.09.16 - 10:55
(0)
конструктор запросов разок мне помог.
   SeiOkami
 
5 - 20.09.16 - 10:56
(3), это что-то не то. в твоём примере не будет в строке вложенной строки. Это будут просто сложенные строки
   SeiOkami
 
6 - 20.09.16 - 10:57
(4), я думал о нём, но как его применить для произвольных строк. Он же постоянно проверяет на соответствие языку запросов
   SeiOkami
 
7 - 20.09.16 - 10:58
Сделал обработку с такой функцией:

Функция ОбернутьСтрокуВКавычки(Знач ОборачиваемаяСтрока)
    
    ОборачиваемаяСтрока    = СтрЗаменить(ОборачиваемаяСтрока, """", """""");
    ОборачиваемаяСтрока    = """" + ОборачиваемаяСтрока + """";
    
    Возврат ОборачиваемаяСтрока;
    
КонецФункции


Но как распарсить обратно недогоняю
   f_vadim
 
8 - 20.09.16 - 10:58
(6) ВЫБРАТЬ "строка"

попробуй и удивись
   Garykom
 
9 - 20.09.16 - 11:00
Есть JSON и XML нафуя этот изврат с "вложенными строками" ?
   SeiOkami
 
10 - 20.09.16 - 11:00
(8), ну так это будет ОДНА вложенная в другую строка. Как мне в ней ещё один редактор строк запустить?
 
 Рекламное место пустует
   Лефмихалыч
 
11 - 20.09.16 - 11:01
(7) а какая цель в этом всем?
   aleks_default
 
12 - 20.09.16 - 11:01
(9)он свой XML изобретает
   Лефмихалыч
 
13 - 20.09.16 - 11:02
да, и самый православный способ распарсивать - это написать конечный автомат для этого.
   f_vadim
 
14 - 20.09.16 - 11:03
(10) тут я уже перестал понимать чего тебе нужно
   SeiOkami
 
15 - 20.09.16 - 11:09
Например:
Новый Структура("Запрос", "Новый Запрос(""Выбрать Ссылка Из Справочник.Валюты Где Код = """"ааа"""""")")

В результате будет создана структура с запросом.

Но редактировать такую строку неудобно.
   Garykom
 
16 - 20.09.16 - 11:11
Идиотизм
   xafavute
 
17 - 20.09.16 - 11:12
(16) например параметры в бат файле
   Garykom
 
18 - 20.09.16 - 11:15
(17) угу параметры в бат файле с запросами...

для батников, точнее для автоматического создания bat файлов там же просто делаем переменную Кавычки = """"; и потом плюсуем в строку столько раз сколько нуна...
   Garykom
 
19 - 20.09.16 - 11:16
(18)+ еще лучше сделать короткую функцию Кав(КоличествоКавычек) и все
   SeiOkami
 
20 - 20.09.16 - 11:19
(18), не важно зачем. Важно как.
   f_vadim
 
21 - 20.09.16 - 11:22
(20) зачем тоже важно. может ты выбрал неправильный путь.
можно ограничить окавычивание первым уровнем, но тут тоже легко запутаться

Сообщить(СтрШаблон("Новый Запрос(""%1"")", СтрШаблон("Выбрать * ГДЕ Код = ""%1""", "ааа")))
   Волшебник
 
Модератор
22 - 20.09.16 - 11:23
(5) Ну добавь ты кавычки
   1dvd
 
23 - 20.09.16 - 11:24
Мы сделали редактор строки внутри редактора строки, чтобы вы могли редактировать строку, пока редактируете строку
   Лефмихалыч
 
24 - 20.09.16 - 11:24
(15) с кавычками горя хапнешь. Выбери другой формат хранения.
JSON, xml, да хоть ЗначениеВСтрокуВнутр
   SeiOkami
 
25 - 20.09.16 - 11:25
(22) -> (7)
   SeiOkami
 
26 - 20.09.16 - 11:25
(24), тут нюанс в том, что я не могу выбрать другой формат. Нужно использовать именно кавычки в кавычках и т.д.
   f_vadim
 
27 - 20.09.16 - 11:27
(26) замени кавычки на некавычки - апострофы, квадратные скобки, перед вызовом делай обработку с заменой.
   Лефмихалыч
 
28 - 20.09.16 - 11:28
(27) что это даст?
   xafavute
 
29 - 20.09.16 - 11:28
кстати сам конструктрор запроса есть редактор строки в кавычках
   xafavute
 
30 - 20.09.16 - 11:29
(28) читабельность
   f_vadim
 
31 - 20.09.16 - 11:31
(28) не нужно считать количество кавычек. переложить это на программную обработку.
   Лефмихалыч
 
32 - 20.09.16 - 11:32
(30) так ему не глазами же. А программно абсолютно пофиг, кавычка там или скобка.
(26) тогда - конечный автомат, который посимвольно читает строку и разбирает ее на составляющие. Туева хуча скучного кода - да. Но, раз условия задачи неизменные, живи с этим.
   SeiOkami
 
33 - 20.09.16 - 11:34
(32), живет надежда на то, что где-то это уже есть
 
 
   Лефмихалыч
 
34 - 20.09.16 - 11:35
(33) на ИС смотрел?
   SeiOkami
 
35 - 20.09.16 - 11:35
(34), ничего не нагуглилось. Но может нужно суметь сформулировать эту фигню
   Лефмихалыч
 
36 - 20.09.16 - 11:41
(35) откуда ты эти строчки в строчках-то получаешь?
   SeiOkami
 
37 - 20.09.16 - 11:49
(36), сам собираю. Вручную. А хотелось бы редактором
   Лефмихалыч
 
38 - 20.09.16 - 11:52
(37) почему тогда (26)? Собирай json и не люби мозг!
   SeiOkami
 
39 - 20.09.16 - 11:53
(38), я создаю строки, которые передаю в метод, который я не могу изменить. Чтобы удобнее создавать строки нужен редактор
   Лефмихалыч
 
40 - 20.09.16 - 11:56
(39) чо-т ты путаешься в показаниях. Раньше ты говорил, что проблема распарсить такую строку обратно в смысл, а сейчас ты говоришь, что проблема закодировать.
Хрена ли там кодировать?

Строка = ЗакодироватьВХлам(ЗакодироватьВХлам(Одно)+ЗакодироватьВХлам(ЗакодироватьВХлам(другое)+"="+ЗакодироватьВХлам(Третье)));


Функция ЗакодироватьВХлам(Строка)
  Возврат """"+Строка+"""";
КонецФункции
   SeiOkami
 
41 - 20.09.16 - 12:00
(40), распарсить нужно, чтобы сделать удобный редактор. Берешь редактор, собираешь в нём супер-строку. А потом когда нужно её в этом же редакторе и корректируешь.
   Garykom
 
42 - 20.09.16 - 12:01
Чем то напоминает "сначала создаем себе трудности, а потом героически их преодолеваем"©
   SeiOkami
 
43 - 20.09.16 - 12:03
(42), я уже понял, что ты ничем не можешь помочь
   Garykom
 
44 - 20.09.16 - 12:06
(43) Шо даже (18) и (19) не понял?
   SeiOkami
 
45 - 20.09.16 - 12:08
(44), прочти (0)
суть как раз в том, чтобы НЕ считать кавычки. А ты предлагаешь их считать
   Garykom
 
46 - 20.09.16 - 12:17
Мдя... действительно не понял... что функцию то можно сделать "глобальной" и передавать

Новый Структура("Запрос", "Новый Запрос(Кавычки(1)+"Выбрать Ссылка Из Справочник.Валюты Где Код = "+Кавычки(1)+"ааа"+Кавычки(1)+")")
   Garykom
 
47 - 20.09.16 - 12:20
(46)+ Сорри слегка ошибся в коде, но суть что внутри строки передается не готовая строка, а строка с функциями для сборки.
   SeiOkami
 
48 - 20.09.16 - 12:28
(47), это всё не про то, забей
   xafavute
 
49 - 20.09.16 - 12:32
Лучше так 
СтрВКавычках(Новый Запрос(СтрВКавычках(Выбрать Ссылка Из Справочник.Валюты Где Код = [ааа])));
 
 Рекламное место пустует
   xafavute
 
50 - 20.09.16 - 12:33
вернее так
СтрВКавычках(Новый Запрос(СтрВКавычках("Выбрать Ссылка Из Справочник.Валюты Где Код = [ааа]")));
   xafavute
 
51 - 20.09.16 - 12:35
последний вариант
СтрВКавычках("Новый Запрос(СтрВКавычках([Выбрать Ссылка Из Справочник.Валюты Где Код = [ааа]]))");
Хотя лажа получается, скобочки нужно теперь считать
   ixijixi
 
52 - 20.09.16 - 13:00
   Garykom
 
53 - 20.09.16 - 13:19
Новый Структура("Запрос", "Новый Запрос( СтрокаВКавычках("Выбрать Ссылка Из Справочник.Валюты Где Код = СтрокаВКавычках(ааа)")
)")

Но считать скобки ничем не лучше чем считать кавычки... Поэтому JSON и не париться

{
"Запрос":{
  "Новый Запрос":"Выбрать Ссылка Из Справочник.Валюты Где Код = \"aaa\""
  }
}

   SeiOkami
 
54 - 20.09.16 - 13:44
(53), совершенно не понимаю к чему ты это написал. Как JSON поможет мне редактировать строки с экранированием кавычек?
   Garykom
 
55 - 20.09.16 - 13:50
(54) Функция которая твой текст JSON переведет в строку нужного вида с нужным числом кавычек
   Garykom
 
56 - 20.09.16 - 13:52
(55)+ Суть что пишешь текст в JSON, затем перед отправкой на сервер/другой модуль СтрокаИзJSON(ТекстJSON) и это уже и отправляешь.
   trdm
 
57 - 20.09.16 - 14:00
(0) Передавай список.
   gitotuta
 
58 - 20.09.16 - 14:03
(53) У тебя неверный джсон, новый запрос это НЕ реквизит
   Garykom
 
59 - 20.09.16 - 14:05
(58) Не путаем пример/демо с готовым рабочим кодом?
   gitotuta
 
60 - 20.09.16 - 14:06
(59) у тебя пример оторван от жизни
   Garykom
 
61 - 20.09.16 - 14:13
(60) Вся ветка оторвана от жизни и что? Поймите если увидят в конфе/проге подобный черный ход/дырку типа которой хочет использовать ТС?

При нормальном проектировании/разработке системы таких извратов просто не требуется.
   gitotuta
 
62 - 20.09.16 - 14:24
(61) Набери этот же пример в джсон


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует