c++ char*

Тема в разделе "WASM.BEGINNERS", создана пользователем ltshck, 11 мар 2008.

  1. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    Есть строка огррооооомного размера состоящая из
    0, 0E4h, 0, 18h, 1, 14h ...

    так вот как быстро сделать чтобы запись

    char a[] = { 0, 0E4h, 0, 18h, 1, 14h ...};

    воспринялась MSVC 2005 правильно?

    как
    char a[] = { 0, 0xE4, 0, 0x18, 1, 0x14 };

    ??

    вручную менять 0E4h на 0xE4 и т.д. очень крайне долго!

    #define 0ah 0xa

    какой-нибудь есть? (мой пример ясно дело не работает)

    так как идеи?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    написать простенькую прогу или скрипт.
     
  3. zoool

    zoool New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2007
    Сообщения:
    412
    простейший парсер

    все числа начинаются с "0x"
    если в строке видишь "h" - отбрасываешь
     
  4. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    ltshck
    Открываешь в far' е или в NotePad и "Поиск-> Замена" "h, 0A" -> ", 0xA" "Заменить всё" всего 16 вариантов -- работы на 5-7 минут
     
  5. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    1. замена всех "h" на "";
    2. замена всех ", " на "0x".
     
  6. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Я бы уточнил: "h, " на ", 0x".
     
  7. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    0, 0E4h, 0 - что будет?
    0, 0E4, 0x0 ?
     
  8. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    n0name
    Точно, ошибка. Я просто привык, что обычно все числа с "h". В общем, t00x прав, только не "0х", а ", 0х".
     
  9. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    угу, особенно на массивах которые задаются на нескольких строках...
    хотя может "строка огррооооомного размера" это и есть одна строка :\
     
  10. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    точно ", 0х", а не "0х" :).
     
  11. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Кстати в VS есть поиск и замена по регулярным выражениям.
     
  12. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Можно еще воспользоваться WinHex -- он умеет генерировать определения массивов из двоичных данных для нескольких языков, в том числе и для C.
     
  13. SWR

    SWR New Member

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    226
    Адрес:
    Russia
    да просто ", " заменить на ", 0x"
    А букву h просто удалить
     
  14. Torvald

    Torvald New Member

    Публикаций:
    0
    Регистрация:
    3 мар 2008
    Сообщения:
    9
    А строка у тебя в файле?