строка в вопросе (чтение из файла):Странный Рубин Строка Выбор
if (true) then { _this = createVehicle ["Land_hut10", [6226.8901, 986.091, 4.5776367e-005], [], 0, "CAN_COLLIDE"]; _vehicle_10 = _this; _this setDir -2.109278; };
Источник из большого списка подобных (все тот же файл) строк с помощью следующих действий:
get_stringR(string,"if","};")
а код функции:
def get_stringR(a,b,c) b = a.index(b) b ||= 0 c = a.rindex(c) c ||= b r = a[b,c] return r end
Как до сих пор, это работает отлично, но ш шляпа, которую я хотел сделать, это выбрать массив после «createVehicle», следующий (я думал) должен работать.
newstring = get_string(myString,"\[","\];")
Примечания get_string такого же, как get_stringR, за исключением того, что использует первое вхождение шаблона оба раза, а затем первое и последнее вхождение.
Вывод должен быть:
["Land_hut10", [6226.8901, 986.091, 4.5776367e-005], [], 0, "CAN_COLLIDE"];
Вместо этого он был ниже, дается через «пут»:
["Land_hut10", [6226.8901, 986.091, 4.5776367e-005], [], 0, "CAN_COLLIDE"]; _vehicle_10 = _this; _this setDir
около 40 символов мимо точки она должна иметь получить, что было очень странно. .. Второе примечание, используя как get_string, так и get_stringR произвел точно такой же результат с указанными параметрами.
Затем я решил добавить следующее к моему get_string код:
b = a.index(b) b ||= 0 c = a.index(c) c ||= b if c > 40 then c -= 40 end r = a[b,c] return r
И это работает, как ожидалось (для каждого «блока» в файле, даже если строки после этого массива не являются идентичными в любом путь), но что-то явно не правильно :).
спасибо, друг! Почему c.size? Разве это не должно быть. И если так ... почему? – dcousens
Если бы мы имели строку «ABCDE» и разделители «а» и «де», то строка # индексных вызовы приведут в следующем диапазоне: ABCDE ^ -^ Это происходит потому, что строка # индекс возвращается исходное положение матча. Таким образом, мы должны добавить длину заключительного разделителя (минус один) в конец, чтобы получить всю подстроку. Редактировать: meh, no newlines/форматирование комментариев? Надеюсь, вы получите то, что я имею в виду, тем не менее, –
Да, я сделал, спасибо за помощь! – dcousens