Александр Панков, поскольку я все равно не PHP разработчик я просто могу тебе написать план как сделать такую функцию. Регулярками или нет а ты сам подумай как.
Будем искать функцию следующего вида.
// Допустим на input пойдет пример из вопроса
// <order acode="7102774" ProductName="Какой-то текст "с скобочками", которые нужно заменить" ClientBarCode="" />
function recoverXml($brokenXml){
// 1) Отрубить голову и хвост.
// acode="7102774" ProductName="Какой-то текст "с скобочками", которые нужно заменить" ClientBarCode=""
// Разметить начала имен атрибутов. Они всегда по шаблону идут как alphanum="
// acode="
// ProductName="
// Кавычку слева тоже игнорируем. Остается в остатке такой текст где мы уже знает старт-стоп атрибутов
// acode=7102774 ProductName=Какой-то текст "с скобочками", которые нужно заменить ClientBarCode=
// Потом добавляем " Восстанавливаем форматирование атрибутов. И добавляем тег элемета.
return '<order acode="7102774" ProductName="Какой-то текст "с скобочками", которые нужно заменить" ClientBarCode="" />'
}
Был ли у тебя до этого опыт разработки хоть в чем-то и где-то? Дело в том что для игровых технологий знание
принципов - важнее чем именно языка. Понимаешь-ли ты как работает мультизадачность например?
Из каких частей состоит конвейер современной 3д графики? Что такое конечный автомат?
Ты схватился за язык программирования - но может тебе и это еще рано? Может подучись сначала
просто теории алгоримов.
Более того когда тебе станет за 45 лет - тебе будет вообще безразлично на каком языке писать. Почти все императивные
языки одинаковы. У них одинаковая реакция на ошибки. И одинаковые подходы к решению проблем.
Покажи скрипты как ты пробовал. Есть готовые утилиты oggenc, ffmpeg, lame, blade, и из них можно построить работающий конвейер. И вызвать его их python как subprocess.run
Drno, многие сложные или комплексные проблемы можно решать отбрасывая неизвестное. Например - шумит радио-эфир. Мешает работе wi-fi. Такое часто бывает в 8 часов вечера когда все соседи врубили инет. Чтоб проверить этот фактор и отбросить его - просто подключись кабелем к роутеру. Проблема ушла? Значит дело в wifi. Проблема осталась - ищи дальше.
Тут разные dbms ведут себя по разному. Вообще добавление столбца формализовано только на уровне SQL.
Реализация может быть любой. К примеру для Oracle (при отсутствии активных транзакций) добавление
столбца идет мгновенно. Это модификация словаря метаданных. Но учитывая DDL класс операций
- ее нельзя параллельно "подпихнуть" к действующим транзакциям.
Для графовых и всяких NoSQL систем где schema-less модель хранения данных - не требуется вообще ничего.
Столбец добавляется прозрачно как будто и всегда был. Вернее сказать таблице безразлично число столбцов
и их имена. Просто начинаешь вливать данные с новой колонкой и все ОК. Но там другая беда - нельзя сделать
desc. Впрочем - надо смотреть по каждой. NoSQL - это сильно широкая метафора.
Magachka1, я думаю что далее мои советы будут вредны в этом топике. Мне надо влезть в твою шкуру и понять чем ты отличаешся от 99.9% других школьников которые учатся как все и поступают как все. А это невозможно в рамках вопросов на QA.
Adamos, и кому она нужна такая? Она-же не замена десктопу. В этом вся суть. Другой класс оборудования. Понимаешь. А ты эти два класса хочешь взять руками и притянуть друг к другу. И еще доказать что это эквивалент.
Кстати да. Сейчас есть такие как Xubuntu (XFCE) которым надо 1Гб памяти и все. Ну тоесть реально на металоломе работают. А для изучения например сетей и протоколов этого более чем достаточно. Даже интересно. Вот щас есть целое комьюнити фриков которые покупают Raspberry, Arduino, и железки более мелкие вплоть до stm-32. И что-то там кодят. Это-ж мозохисты. Но они себе там то умный дом делают. Тоже тема.
oneLEAM, такого уровня изоляции не знаю. Ну вот выше по тексту тебе предложили виртуалку. Ну не знаю. Мне было-бы не интересно. Я люблю полный доступ к железу чтоб можно было педаль в землю втопить. Виртуалка - это ограничитель. Кроме того если ты начинающий пользователь то ты даже сходу доступа к этой виртуалке не откроешь. Понимаешь разницу между nat, brigde, host e.t.c? Это будет челледж еще тот. Замкнутый круг. Ты изучаешь линукс. Ставишь на виртуалку и доста к нему нету с других машин. А нету - потому что ты изучаешь линукс. А если ты что-то тыкнул или "оно заработало" - ты еще нихрена ни линуксоид. Надо чтоб оно упало в плинтус. И ты разобрался. Поднял. Поэтому я против виртуалки в данном учебном примере. Хотя во всех других отношения виртуалка удобна конечно.
Ты можешь на бумажке нарисовать график (линия) который пройдет через нужные тебе точки.
(1,1) и (8,100) и далее как делали в школе - придумать функцию которая пройдет через эти
две точки. Там легко. Найти коэффициент наклона и сдвиг по оси Y.
После этого у тебя - готовая функция вида y = f(x) и подставляй в нее вещественные числа и все будет ок.
Будем искать функцию следующего вида.
Вот такой план.