Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.28;
Скачать: CL | DM;

Вниз

А как-бы мне строку, введенную в edit преобразовать в unicode???   Найти похожие ветки 

 
Cker   (2002-10-12 23:58) [0]

сабж


 
Anatoly P   (2002-10-13 00:43) [1]

Функция StringToWideChar(
const Source: string;
Dest: PWideChar;
DestSize: Integer ): PWideChar;

Функция помещает в буфер DestSize-1 символ и символ окончания строки. В качестве результата функция возвращает указатель на буфер Dest.




 
Cker   (2002-10-13 23:08) [2]

А вотвопрос: имеется несколько версий unicode. Будет-ли такой вариант работать для всех случаев?


 
Cker   (2002-10-13 23:16) [3]

procedure TForm1.Button1Click(Sender: TObject);
var Dest : PWideChar;
i : Integer;
begin
StringToWideChar("Проверка", Dest, i);
end;

вылетает фатальная ошибка:"Access violation at address........."
???


 
Вася Пупкин ©   (2002-10-14 02:55) [4]

Правильно вылетает....Dest - Указатель на буфер...а где буфер-то ? -)
Хотя бы так:
procedure TForm1.Button1Click(Sender: TObject);
var Dest : array[1..9] of WideChar;
begin
StringToWideChar("Проверка", @Dest, 9);
end;



 
Cker   (2002-10-14 22:46) [5]

А разве это Unicode?????
Я просматриваю Dest и вижу массив букв ("П", "р", "о"........)
А вроде-ж должно быть что-то типа #1010 для каждой буквы???


 
Cker   (2002-10-16 23:19) [6]

мммммммм
help


 
int64 ©   (2002-10-17 10:23) [7]

Вот такой вариант есть.

function Unicode(const S: string): string;
var
I: Integer;
Hex: string;
begin
for I := 1 to Length(S) do

case S[i] of
" ": result := Result + "+";
"A".."Z", "a".."z", "*", "@", ".", "_", "-",
"0".."9", "$", "!", """", "(", ")":
result := Result + s[i];
else
begin
Hex := IntToHex(ord(S[i]), 2);
if Length(Hex) = 2 then Result := Result + "%" + Hex else
Result := Result + "%0" + hex;
end;
end;
end;


 
Smithson ©   (2002-10-17 11:04) [8]

Товарищи, не путайте слона и трепетную лань!
Unicode в HTML - это %HEX кодировка символов.
Unicode в Delphi - это многобайтное представление символов. Для
этого идут функции WideString.


 
Игорь Шевченко ©   (2002-10-17 11:10) [9]

Кстати, версия unicode - одна.


 
Cker   (2002-10-17 14:12) [10]

>Smithson
Согласен.
На каждый символ по два байта: кодовая страница и непосредственно код символа.
Пробую вариант:

procedure TForm1.Button1Click(Sender: TObject);
var Dest : array[1..9] of WideChar;
begin
StringToWideChar("Проверка", @Dest, 9);
end;

Получаю в Dest: "П", "р", "o" и т. д.
???


 
Smithson ©   (2002-10-17 14:20) [11]

Ну и правильно!
Инспектор при просмотре правильно интерпретирует WideChar.
Если очень надо - сбрось Dest в файл и посмотри его фаром - все увидишь.



Страницы: 1 вся ветка

Текущий архив: 2002.10.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
3-92409
Maik
2002-10-07 18:25
2002.10.28
Последовательное выполнение Select


1-92498
k
2002-10-18 14:51
2002.10.28
Template


4-92786
_sMile
2002-09-07 07:55
2002.10.28
DeleteFile


14-92741
Катерина
2002-10-08 15:48
2002.10.28
Впечатления от школы-семинара


7-92761
mmb
2002-08-16 12:16
2002.10.28
Точный таймер (1-2 мсек)