PDA

Просмотр полной версии : [Вопрос] Разбор строки



SnyXes
06.06.2016, 01:13
Всем привет!
Сразу к делу.

Создаю функцию которая создает диалог на текстдравах. Текстдравы создаются по одному. В новом(созданном) текстдраве, должна рисоваться модель(с ротацией и масштабом) введенная в строке которую нужно разобрать.

Сама строка: "0|90.0|180.0|90.0|1.0/n1|90.0|90.0|90.0|1.5/n2...", где /n - переход к следующей модели, 0,1 - ID модели, 90.0|180.0|90.0|1.0 - ротация и масштаб от 0 модели, 90.0|90.0|90.0|1.5 - ротация и масштаб от 1 модели и так далее.

Строка может быть любого размера, это зависит от кол-ва моделей.

Временно сделал так:

for(new i = 0, j = strlen(options); i <= j; i++)
{
if(options[i] == '\n' || i == j)
{
//создаем текстдрав с 0 моделью.


Все текстдравы создаются с 0 моделью. Не получается разобрать строку, чтобы создавать с текстдравы с указанной моделью.

VVWVV
06.06.2016, 01:25
Используй fread со sscanf (http://forum.sa-mp.com/showthread.php?t=602923).

SnyXes
06.06.2016, 02:01
Используй fread со sscanf (http://forum.sa-mp.com/showthread.php?t=602923).

Забыл сказать. Я пытался использовать sscanf, но что-то не получается.

Вот, что нашел в этой (http://forum.sa-mp.com/showthread.php?t=602923) теме:
sscanf("42, 43; 44@", "P<,;@>a<i>[3]", arr) - Делит по определенным символам в массив. Тут нужно указывать размер. Размер зависит от кол-ва моделей, а кол-во всегда меняется.

P.S. не понимаю, для чего мне fread...

SnyXes
06.06.2016, 16:52
:help:

VVWVV
06.06.2016, 21:59
Забыл сказать. Я пытался использовать sscanf, но что-то не получается.

Вот, что нашел в этой (http://forum.sa-mp.com/showthread.php?t=602923) теме:
sscanf("42, 43; 44@", "P<,;@>a<i>[3]", arr) - Делит по определенным символам в массив. Тут нужно указывать размер. Размер зависит от кол-ва моделей, а кол-во всегда меняется.

P.S. не понимаю, для чего мне fread...

Fread читает каждую строку, а sscanf парсит её. Используйте цикл.