如何使用 Delphi 在 Android 平台中将 String 转换为 PWideChar
How to convert String to PWideChar in Android Platform using Delphi
如何使用 Delphi 在 Android 平台中将字符串转换为 PwideChar?在 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 柏林,Firemonkey,Android
更新
好吧,根据 http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Migrating_Delphi_Code_to_Mobile_from_Desktop,我们不能使用宽字符串,我想不出另一种方法来使用字符串这个函数:
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;
您的代码在 Windows 中并不严格正确。是的,您可以将 string
(UnicodeString
的别名)转换为 COM WideString
,但这是浪费时间和资源。正确的代码是:
var
P: PWideChar;
S: string;
....
P := PWideChar(S);
事实上,由于您使用的是 Delphi 的 Unicode 版本,因此使用 PChar
(PWideChar
的别名)可能是惯用的,以适应 [=12] =].
所以我会写:
var
P: PChar;
S: string;
....
P := PChar(S);
现在,这段代码以及在 Windows 上执行此操作的正确方法同样适用于所有平台。
如何使用 Delphi 在 Android 平台中将字符串转换为 PwideChar?在 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 柏林,Firemonkey,Android
更新
好吧,根据 http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Migrating_Delphi_Code_to_Mobile_from_Desktop,我们不能使用宽字符串,我想不出另一种方法来使用字符串这个函数:
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;
您的代码在 Windows 中并不严格正确。是的,您可以将 string
(UnicodeString
的别名)转换为 COM WideString
,但这是浪费时间和资源。正确的代码是:
var
P: PWideChar;
S: string;
....
P := PWideChar(S);
事实上,由于您使用的是 Delphi 的 Unicode 版本,因此使用 PChar
(PWideChar
的别名)可能是惯用的,以适应 [=12] =].
所以我会写:
var
P: PChar;
S: string;
....
P := PChar(S);
现在,这段代码以及在 Windows 上执行此操作的正确方法同样适用于所有平台。