0

「STF:宋体」に等しい WideString の ExtractFileName を使用しています。結果は「??」です。

ExtractFileName は unicode をうまく処理していないようです。

ユニコードに相当する方法はありますか?

編集:

これは私が使用する回線です

NameStr := ExtractFileName(Name);

タイプは次のとおりです。

NameStr:String;

Name:PWideChar
4

4 に答える 4

4

TNTTntSysUtils.WideExtractFileNameからも使えます。

于 2011-04-05T08:01:35.720 に答える
1

Unicode をサポートしていない古いバージョンの Delphi を使用しているようです。解決策は、Delphi をアップグレードすることです。

于 2011-04-05T07:28:44.347 に答える
0

次のように、家庭で調理されたバージョンの を使用できますExtractFileName

function ExtractFileNameW(FullPath:WideString):WideString;
var i,pos:Integer;
begin
  // Find the last path separator
  pos := -1;
  for i:=Length(FullPath) downto 1 do
    if (FullPath[i] = '/') or (FullPath[i] = '\') then
    begin
      pos := i;
      Break;
    end;
  if pos = -1 then
    Result := FullPath
  else
    begin
  Result := '';
      SetLength(Result, Length(FullPath)  - pos);
      System.Move(FullPath[pos+1], Result[1], (Length(FullPath) - pos) * SizeOf(WideChar));
    end;
end;

...しかし、本当に Unicode 文字を扱う必要がある場合は、XE にアップグレードする必要があります。それは本当に多くの違いを生みます。

于 2011-04-05T10:33:59.620 に答える