Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
3-92326
ec
2002-10-05 15:43
2002.10.28
Как послать параметр в StoredProc


4-92814
МИФИст
2002-09-17 13:32
2002.10.28
Сообщения?


3-92321
big_bugzy
2002-10-04 16:13
2002.10.28
insufficient key column information


14-92683
Undert
2002-10-07 21:46
2002.10.28
Кто может предложить ...


1-92532
MV-GROB
2002-10-15 20:39
2002.10.28
не работает последняя функция




   Наверх