-
> pasha_golub © (09.09.08 09:03) [193]
PChar generic тип, значит нужно использовать фундаментальный PAnsiChar
-
> Вообщем, как-то я не могу сложить разум в кучу по этому
> поводу. Опять же сколько надо терминирующих нулей вопрос.
> Ранее один впулил и доволен. Теперича, я так понимаю, два
> надобно?
Неправильно понимаешь, и раньше и сейчас ровно один символ NUL - ты оперируешь не той сущностью, забудь про байты и нули, думай в символах.
Если нужно ввести один символ nul то указывай #0 и все, остальное дело компилятора и системы.
Это не ясно зачем?
Уточни вопрос.
> var S: string; //UNT16
> begin
> ..
> i := return_int(PAnsiChar(UnicodeToUTF8(S));
> ...
> end;
Может это поможет - UTF8 = AnsiChar
-
> Может это поможет - UTF8 = AnsiChar
Это как это?
У меня есть String. Она UTF16. В функцию я могу передать UTF8.
-
> Опять же сколько надо терминирующих нулей вопрос. Ранее
> один впулил и доволен.
вообще то сколько нужно терминирующих нулей в функцию передать -функция и опрделеяет. Дельфя тут как бы не причем ;-)
-
Естественно я опечатался, имелось в виду AnsiString , а не AnsiChar
Из Д7
> type UTF8String = type string;
>
> C++ syntax:
>
> typedef AnsiString UTF8String;
Определение в C++ правильное, для Дельфи в 2009 оно поправлено до AnsiString
UTF8 это транспортная кодировка, что бы Юникод можно было передавать по каналам связи, которые де факто ASCII и реагируют на управляющие символы, не все символы воспринимаются как символы, например #0 и #1A
Один символ Юникода может быть закодирован от 1 до 6 символов UTF8
-
разве до 6? мне казалось что до 3-х.
-
> wl (09.09.2008 18:52:25) [205]
Не будем устраивать торг. Желающие могут посмотреть точные данные в rfc или в какой либо педии.
-
> Anatoly Podgoretsky © (09.09.08 18:47) [204]
> для Дельфи в 2009 оно поправлено до AnsiString
Это хорошо. А каким образом мне string переделать в UTF8string? Простым присваиванием?
-
> pasha_golub (09.09.2008 19:47:27) [207]
Если ты хочешь переделать Юникод в UTF8 то в Дельф много функций, не считая функций из АПИ, которых одна, вокруг которой и паразитирует Дельфи.
Попробуй например UnicodeToUtf8
-
> Простым присваиванием?
Именно. Компилятор сам переводит из одной кодировки в другую без явного использования функций перекодировки. Где-то в блогах разработчиков было написано, вроде даже в этой ветке была ссылка.
-
-
> DVM © (31.08.08 22:17) [149]
> Наше проблему, дело оказалось не в WideStringПеределал так:
> function InetAddr(const AHost: AnsiString): DWORD;var PHost:
> PAnsiChar; HostEnt: PHostEnt;begin if AHost = '' then
> result := INADDR_NONE else begin PHost := PAnsiChar(AHost);
> Result := inet_addr(PHost); if Result = INADDR_NONE
> then begin HostEnt := GetHostByName(PHost);
> if HostEnt <> nil then Result := DWORD(pointer(HostEnt^.
> h_addr^)^); end; end;end;
тоже сейчас столкнулся с этой проблемой.
по-моему проще привести тип прям в условии
iIP := inet_addr(PAnsiChar(AnsiString(sIP)));
if iIP = Integer(INADDR_NONE) then
begin
Exit;
end;
-
Забавная фича ))
procedure TForm1.FormCreate(Sender: TObject);
procedure Процедурко;
begin
ShowMessage('Превед');
end;
begin
Процедурко;
end;
-
Anatoly Podgoretsky © (23.08.08 21:25)
Дождались
Покупать что ли будешь?
Денег выделили?
Или просто так радуешься? За других счастливчиков...
-
> blackman (26.09.2008 11:31:33) [213]
За державу
-
Anatoly Podgoretsky © (26.09.08 12:11) [214]
За которую ? Тут много разных ...
Или за тех кто за морем? :)
Вообще-то, мне лично и D6-7 хватает.
Не нужны эти новые примочки для лишних заморочек усталого старческого сознания :)
-
> blackman (26.09.2008 12:23:35) [215]
За королевство Дельфи.
Ну а мне не хватает, по крайней мере с 1996 года, и остро с 2001 с переходом на Юникод ОСи
-
> [215] blackman © (26.09.08 12:23)
дженерики и юникод - вещи отличные.
жаль что дженерики это не шаблоны, говорят на производительность влияет. но в большенстве моих задач такой потерей можно пренебречь.
-
Anatoly Podgoretsky © (26.09.08 12:59) [216]
и остро с 2001 с переходом на Юникод ОСи
Для и зачем перешел? Не понял...
-
> blackman © (26.09.08 15:23) [218]
"ОСи" - это не "толпа больших полосатых мухи", а "Операционной Системы"
> Для и зачем перешел?
У самого то мыслей не возникает?