【发布时间】:2015-08-22 22:45:06
【问题描述】:
我想将一些数据记录存储到磁盘。我想让每条数据记录的大小相等,这样我就可以快速计算并跳转到某个记录。 因此,我将记录中唯一的字符串存储为一个字符数组:
type TFileNameIO = array[1..512] of Char;
从磁盘读取字符串后,我的字符串内容是这样的:
c:\windows#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 等
我想截断 #0 字符,我做了这样的事情:
function GetFileName(DiskName: TFileNameIO): string;
VAR PC: PChar;
begin
SetString(Result, PChar(@DiskName), Length(DiskName)); <----- here Result is: c:\windows#0#0#0 etc
PC:= PChar(Result);
Result:= WideCharToString(PC);
end;
有更好的方法吗?
【问题讨论】:
-
我用Delphi已经有一段时间了,但我认为你可以做 PC = @Result[1] ; WideCharToString(PC);
标签: delphi delphi-xe7