Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> StringToWideChar, как юзать??? 
V
    Опции темы
Zlo
Дата 4.11.2006, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.9.2004

Репутация: 1
Всего: 1



сильно не бейте, но что-то не пойму как использовать функцию 
Код

StringToWideChar

покажите пожалуйста на примере.

П.С Строка написана русским текстом.

П.П.С А обратно в стринг как?

Добавлено @ 00:06 
нашел вот  такой пример:
Код

var
   wideChars : array[0..11] of WideChar;
   myString : String;

begin
   // Set up our string
   myString := 'Hello World';

   // Copy to a WideChar format in our array
   StringToWideChar(myString, wideChars, 12);

   // Show what the copy gave
   ShowMessage(WideCharToString(wideChars));
end;


А что если мне надо из Memo записать текст в S? как тогда?

Мне нужно чтобы текст русский превращался вот так:
"Русский текст"--->"%D0%F3%F1%F1%EA%E8%E9+%F2%E5%EA%F1%F2"
PM MAIL   Вверх
Zlo
Дата 5.11.2006, 02:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.9.2004

Репутация: 1
Всего: 1



Вопщем нашлось решение... если кому надо, то вот:
Код

{ **** UBPFD *********** by delphibase.endimus.com **** 
 >> URL кодирование строки 
 
 Функция производит так назваемое URL кодирование строк для использования 
 в http запросах. Т.е. все алфавитно-цифровые символы и знак подчёикивания 
 '_' остаются неизменными, пробел заменяется на '+', а все остальные символы 
 на знак процента '%' с двумя шестнадцатеричными цифрами. 
 
 Зависимости: Windows 
 Автор:  Dimka Maslov, [email protected], ICQ:148442121, Санкт-Петербург 
 Copyright: Dimka Maslov 
 Дата:  27 мая 2002 г. 
 ***************************************************** } 
 
 function UrlEncode(Str: string): string; 
 
 function CharToHex(Ch: Char): Integer; 
 asm 
  and eax, 0FFh 
  mov ah, al 
  shr al, 4 
  and ah, 00fh 
  cmp al, 00ah 
  jl @@10 
  sub al, 00ah 
  add al, 041h 
  jmp @@20 
 @@10: 
  add al, 030h 
 @@20: 
  cmp ah, 00ah 
  jl @@30 
  sub ah, 00ah 
  add ah, 041h 
  jmp @@40 
 @@30: 
  add ah, 030h 
 @@40: 
  shl eax, 8 
  mov al, '%' 
 end; 
 
 var 
 i, Len: Integer; 
 Ch: Char; 
 N: Integer; 
 P: PChar; 
 begin 
 Result := ''; 
 Len := Length(Str); 
 P := PChar(@N); 
 for i := 1 to Len do 
 begin 
  Ch := Str[i]; 
  if Ch in ['0'..'9', 'A'..'Z', 'a'..'z', '_'] then 
  Result := Result + Ch 
  else 
  begin 
  if Ch = ' ' then 
  Result := Result + '+' 
  else 
  begin 
  N := CharToHex(Ch); 
  Result := Result + P; 
  end; 
  end; 
 end; 
 end;

Пример использования:
Код

procedure TForm1.Button1Click(Sender: TObject); 
 var 
 S: string; 
 begin 
 S := UrlEncode('Delphi World'); 
 ShellExecute(Handle, 'open', 
  PChar('http://www.yandex.ru/yandsearch?text=' + S), '', '', SW_SHOWNORMAL); 
 end;


Код

{ **** UBPFD *********** by delphibase.endimus.com **** 
 >> URL декодирование строки 
 
 Функция выполняет URL декодирование строки, заменяя все подстроки вида 
 '%HH', где 'HH' - шестнадцатеричные цифры, на соответствующие символы. 
 
 Зависимости: Windows 
 Автор:  Dimka Maslov, [email protected], ICQ:148442121, Санкт-Петербург 
 Copyright: Dimka Maslov 
 Дата:  27 мая 2002 г. 
 ***************************************************** } 
 
 function UrlDecode(Str: string): string; 
 
 function HexToChar(W: word): Char; 
 asm 
 cmp ah, 030h 
 jl @@error 
 cmp ah, 039h 
 jg @@10 
 sub ah, 30h 
 jmp @@30 
 @@10: 
 cmp ah, 041h 
 jl @@error 
 cmp ah, 046h 
 jg @@20 
 sub ah, 041h 
 add ah, 00Ah 
 jmp @@30 
 @@20: 
 cmp ah, 061h 
 jl @@error 
 cmp al, 066h 
 jg @@error 
 sub ah, 061h 
 add ah, 00Ah 
 @@30: 
 cmp al, 030h 
 jl @@error 
 cmp al, 039h 
 jg @@40 
 sub al, 030h 
 jmp @@60 
 @@40: 
 cmp al, 041h 
 jl @@error 
 cmp al, 046h 
 jg @@50 
 sub al, 041h 
 add al, 00Ah 
 jmp @@60 
 @@50: 
 cmp al, 061h 
 jl @@error 
 cmp al, 066h 
 jg @@error 
 sub al, 061h 
 add al, 00Ah 
 @@60: 
 shl al, 4 
 or al, ah 
 ret 
 @@error: 
 xor al, al 
 end; 
 
 function GetCh(P: PChar; var Ch: Char): Char; 
 begin 
  Ch := P^; 
  Result := Ch; 
 end; 
 
 var 
 P: PChar; 
 Ch: Char; 
 begin 
 Result := ''; 
 P := @Str[1]; 
 while GetCh(P, Ch) <> #0 do 
 begin 
  case Ch of 
  '+': Result := Result + ' '; 
  '%': 
  begin 
   Inc(P); 
   Result := Result + HexToChar(PWord(P)^); 
   Inc(P); 
  end; 
  else 
  Result := Result + Ch; 
  end; 
  Inc(P); 
 end; 
 end;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0397 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.