Преобразование строки в нижний регистр

Тема в разделе "WASM.NT.KERNEL", создана пользователем DoZENT, 24 май 2007.

  1. DoZENT

    DoZENT New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2007
    Сообщения:
    50
    Извини, какого перевода?
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    DoZENT
    ну блин, функцию перевода строки в нижний регистр. сорс которой в 1 посте
    просто неясно, откуда берется CheckedFileName
    чем больше исходного кода, имеющего отношение к делу, приведешь, тем будет лучше и тем быстрее разберемся, в чем дело
     
  3. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Great
    Понимаешь, что меня смущает - то, что с локальной переменной не работает, а с этой CheckedFileName - работает. Что-то тут нечисто.
     
  4. DoZENT

    DoZENT New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2007
    Сообщения:
    50
    http://www.wasm.ru/forum/viewtopic.php?id=20650 .crypto прав, что-то неправильно... Дело не в том, откуда я ее вызываю, ведь если производить сравнение элементов списка (смотри ссылку) и параметр, который передается в функцию (CheckedFileName), то все работает...
     
  5. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    DoZENT
    По-моему, ты опять наступаешь на грабли из того топика. И пытаешься перевести в нижний регистр стек. Со всеми вытекающими...

    Возьми для начала готовую реализацию списка (с ф-циями добавления, удаления, поиска), и посмотри, что и как там делается.
     
  6. DoZENT

    DoZENT New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2007
    Сообщения:
    50
    У меня уже есть реализация списка! Она прекрасно работает, если не пытаться переводить строку в нижний регистр.

    Возможно, но не могу найти как это исправить. Может быть при каждом вызове IsAdded выделять память под строку с помощью ExAllocatePool?
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Лучше не модифицировать исходную строку, ога)
    Прототип сделать типа
    BOOLEAN ConvertLowercase( LPWSTR Source, LPWSTR *Destination, BOOLEAN AllocateSpace )
    если AllocateSpace = 1, то выделить память, туда записать преобразованную строку и указатель поместить в *Destination
    если AllocateSpace = 0 то просто использовать указатель Destination как LPWSTR.

    по типу виндовой апи FormatMessage (кто знает, увидит аналогию с её буфером и флагом FORMAT_MESSAGE_ALLOCATE_BUFFER)
     
  8. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Странная эта реализация... :)
    Зачем переводить строку в нижний регистр? Эта строка в нижнем регистре используется только для сравнения с элементами списка. И больше нигде. Напрасно раздувается код, бесполезно расходуется память, при этом ещё и время работы кода увеличивается. Есть же функции регистронезависимого сравнения строк (_wcsicmp).

    К тому же перевод в нижний регистр при проверке списка вынуждает переводить строки в нижний регистр и при добавлении в список. Это ещё тормоза.
     
  9. DoZENT

    DoZENT New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2007
    Сообщения:
    50
    Спасибо всем огромное, решение вроде бы как нашел, если что не будет работать напишу)