Форум: "Начинающим";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];
ВнизПеревод ANSI строки в верхний регистр. Найти похожие ветки
← →
Riply © (2008-08-15 17:39) [0]Здравствуйте !
Пытаюсь средствами 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 ?
← →
Riply © (2008-08-15 17:40) [1]Sorry. Опять забыла выделить код.
← →
Palladin © (2008-08-15 17:52) [2]а зачем именно средствами Nt ? чем AnsiUpperCase/AnsiLowerCase не угодили?
← →
@!!ex © (2008-08-15 18:13) [3]На крайняк ничего не мешает сделать свою функцию..
← →
Riply © (2008-08-15 18:36) [4]> [2] Palladin © (15.08.08 17:52)
> а зачем именно средствами Nt ? чем AnsiUpperCase/AnsiLowerCase не угодили?
Конечно можно использовать, например, CharUpperBuff (она сразу пишет в буфер),
но мне уже стало просто интерересно как можно выкрутится с Nt. Неужели только через Unicode ?
> [3] @!!ex © (15.08.08 18:13)
> На крайняк ничего не мешает сделать свою функцию..
Ну изобретение велосипеда мы оставим, пока, на потом :)
← →
Anatoly Podgoretsky © (2008-08-15 19:03) [5]
> На крайняк ничего не мешает сделать свою функцию..
Ты готов и можешь, но только именно ANSI
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.06 c