Как конвертировать String в PWideChar на платформе Android с помощью Delphi
Как преобразовать строку в PwideChar на платформе Android с помощью Delphi? в приложениях Windows это сделано с помощью..
var
PW: PWideChar;
begin
PW := pwidechar(widestring(String));
PW := pwidechar(widestring(Reply));
A := ExistWordInString(PW,String,[soWholeWord,soDown]); //A : Boolean
....
end;
проблема в том Undeclared identifier: 'WideString'
как обойти это?
Delphi 10 Berlin, Firemonkey, Android
ОБНОВИТЬ
ну, в соответствии с http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Migrating_Delphi_Code_to_Mobile_from_Desktop,, мы не можем использовать widestring, я не могу придумать другой способ использовать строку этой функции:
function ExistWordInString(aString:PWideChar;aSearchString:string;aSearchOptions: TStringSearchOptions): Boolean;
var
Size : Integer;
Begin
Size:=StrLen(aString);
Result := SearchBuf(aString, Size, 0, 0, aSearchString, aSearchOptions)<>nil;
1 ответ
Ваш код не совсем корректен в Windows. Да, вы можете конвертировать string
(псевдоним для UnicodeString
) в СОМ WideString
, но это пустая трата времени и ресурсов. Правильный код:
var
P: PWideChar;
S: string;
....
P := PWideChar(S);
На самом деле, поскольку вы используете версию Delphi для Unicode, вероятно, идиоматично использовать PChar
(псевдоним для PWideChar
), чтобы соответствовать string
,
Поэтому я бы написал:
var
P: PChar;
S: string;
....
P := PChar(S);
Теперь этот код, а также правильный способ сделать это в Windows, одинаково работает на всех платформах.