Задачка о перечислении элементов списка

Тема в разделе "WASM.A&O", создана пользователем Black_mirror, 29 июн 2008.

  1. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    Есть ASCIIZ-строка в которой находится список.
    Список состоит из одного или нескольких интервалов разделённых запятыми.
    Интервал может быть произвольным словом или парой границ, разделённых знаком минус.
    Границы одного интервала имеют общий префикс(который может быть пустым) и каждая оканчиваются числом(максимальный суффикс, состоящий только из цифр), причём число в левой границе меньше чем число в правой. Пример списка:
    A,B8,C2,C5,D2.8-D2.12,E,4B3Q,07-11
    Данный список состоит из элементов:
    A,B8,C2,C5,D2.8,D2.9,D2.10,D2.11,D2.12,E,4B3Q,07,08,09,10,11
    Необходимо написать stdcall функцию, которая получает через стек указатель на список, перечисляет все его элементы, записывая каждый элемент в глобальный массив buf(завершая его нулевым символом) и вызывает для него функцию func, которая не имеет аргументов(работает с buf), но может портить регистры eax,ecx,edx.
    Считаем что список абсолютно корректный, то есть проверять что внутри есть пробелы, у границ не совпадает суффикс или перепутаны числа не нужно.
    Оптимизируем по размеру.
     
  2. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Black_mirror
    Вам прям сборники олимпиадных задач строчитить ;)