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

Вниз

как перевести string в widestring?   Найти похожие ветки 

 
Locked   (2002-03-30 08:15) [0]

есть какая нить ф-я для этого?


 
Eug201 ©   (2002-03-30 10:34) [1]

Ессно:

var
a:string;
b:widestring;

b:=a;

:)) Все необходимые преобразов. совершаются автоматически


 
Yaro ©   (2002-03-31 09:59) [2]

Если я не ошибаюсь, то WideString описан таким образом:

Type
WideString = String;

Поэтому даже переводить не надо... Это тот же стринг.


 
Tosov ©   (2002-03-31 10:07) [3]

StringToWideChar()

Eug201 & Yaro
Вы в этом точно уверены?


 
Yaro ©   (2002-03-31 10:59) [4]

Не знаю, но вот это точно должно сработать:


var US: String;
WS: WideString;

{...}

US := WideString(US);



 
dymka ©   (2002-03-31 11:05) [5]

WideString хранит строки в UniCode, в отличие от String...
Преобразование типов может осуществляться автоматически, так и явно...
2Yaro: такое можно сказать про ANSIString и то при включенной опции компилятора поддержки длинных строк...


 
Севостьянов Игорь ©   (2002-04-03 11:02) [6]

Согласен с предыдущим ответом...
А преобразовывать и не надо...
Даже Borland этим не страдает (смотри их Sources)
A string represents a sequence of characters. Object Pascal supports the following predefined string types.

Type Maximum length Memory required Used for
ShortString 255 characters 2 to 256 bytes backward compatibility
AnsiString ~2^31 characters 4 bytes to 2GB 8-bit (ANSI) characters
WideString ~2^30 characters 4 bytes to 2GB Unicode characters;
COM servers and interfaces


 
yaJohn ©   (2002-04-03 11:36) [7]

Если вас интересует кирилица под русской Win - все правильно. Присваивать можно и туда и обратно. А вот под не русской все будет очень-очень плохо. Или под русской, но на китайском. На то и unicode.
Что до subj - см. Project JEDI Code Library (JCL) JclUnicode.pas


 
yaJohn ©   (2002-04-03 13:28) [8]

Вот это работает для русского языка. Глюкает на буквe e: ( Потому я и набрать ее не могу :)))
function WideStr2Str(s: WideString): string;
type
TWideRec = record
case integer of
0: ( wch: WideChar);
1: ( ch: char;
code: byte;
);
end;
var ch: TWideRec;
a: array [0..1] of byte absolute ch;
i,x: integer;
begin
setlength(result,length(s));
for i:=1 to length(s) do
begin
ch.wch:=s[i];
if ch.code = 0
then result[i]:=ch.ch
else result[i]:=chr(ord(ch.ch)+176);
end;
end;

Реализация не идеальная, но идея ясна.


 
REA   (2002-04-03 15:23) [9]

Насчет широких строк - не дай кришна запихать русские буквы в Delphi 6 в variant. Он тогда их сохранить в ресурс может, а вот загрузить уже нет (не предусмотрена загрузка WideString как Variant). Комментарий борланда выглядит как "ну и фиг с ними".



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

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

Наверх




Память: 0.48 MB
Время: 0.013 c
3-46249
fomstas
2002-03-22 09:40
2002.04.15
Не могу бороться с ошибкой


6-46472
Shadowww
2002-01-31 11:10
2002.04.15
Маска подсети


3-46236
Malder
2002-03-18 20:43
2002.04.15
Добавление информации к Blob полю


14-46508
Song
2002-03-03 11:00
2002.04.15
Про


1-46437
LazyCat
2002-04-02 17:04
2002.04.15
Как сделать липкие формы?