Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перевод ANSI строки в верхний регистр.


Riply ©   (2008-08-15 17:39:00) 

Здравствуйте !
Пытаюсь средствами Nt-функций преобразовать строку.
Все дело в том, что RtlUpperString и RtlUpperChar
соглашаются работать только с 'a'..'z' чарами, а с остальными, ну ни в какую :)
Временно выкрутилась таким образом:
function Rtl_UpcaseAnsiStringToAnsiString(const pAnsiDest, pAnsiSource: PANSI_STRING; AllocateDestString: BOOLEAN): NTSTATUS;
var
Us: UNICODE_STRING;
begin
Result := RtlAnsiStringToUnicodeString(@Us, pAnsiSource, True);
if NT_SUCCESS(Result) then
 try
  Result := RtlUpcaseUnicodeStringToAnsiString(pAnsiDest, @Us, AllocateDestString);
 finally
  RtlFreeUnicodeString(@Us);
 end;
end;
Но мне очень не нравяться перебрасывания в Unicode и обратно.
Подскажите, пожалуйста, может есть проще способ ?
Или может я не так использую ф-ии RtlUpperString ?


Anatoly Podgoretsky   (2008-08-15 19:03:00) [1]


> На крайняк ничего не мешает сделать свою функцию..

Ты готов и можешь, но только именно ANSI


Riply   (2008-08-15 18:36:00) [2]

> [2] Palladin ©   (15.08.08 17:52)
> а зачем именно средствами Nt ? чем AnsiUpperCase/AnsiLowerCase не угодили?

Конечно можно использовать, например, CharUpperBuff (она сразу пишет в буфер),
но мне уже стало просто интерересно как можно выкрутится с Nt. Неужели только через Unicode ?

> [3] @!!ex ©   (15.08.08 18:13)
> На крайняк ничего не мешает сделать свою функцию..

Ну изобретение велосипеда мы оставим, пока, на потом :)


@!!ex   (2008-08-15 18:13:00) [3]

На крайняк ничего не мешает сделать свою функцию..


Palladin   (2008-08-15 17:52:00) [4]

а зачем именно средствами Nt ? чем AnsiUpperCase/AnsiLowerCase не угодили?


Riply   (2008-08-15 17:40:00) [5]

Sorry. Опять забыла выделить код.


Наверх

Титульная страница Поиск, карта сайта Написать письмо