? 原代码: var i: integer; FS: TFileStream; LBuff-6ren">
gpt4 book ai didi

android - 如何在Delphi中打开并读取Android设备上的 "/proc/cpuinfo"

转载 作者:行者123 更新时间:2023-11-30 02:05:59 24 4
gpt4 key购买 nike

谁能告诉我如何在 Delphi Android 设备上打开和阅读/proc/cpuinfo” >?

原代码:

var
i: integer;
FS: TFileStream;
LBuffer: TBytes;
begin
if FileExists('/proc/cpuinfo') then
begin
FS:= TFileStream.Create('/proc/cpuinfo', fmOpenRead);
try
SetLength(LBuffer, FS.Size);
FS.ReadBuffer(Pointer(LBuffer)^, Length(LBuffer));
for i:= 0 to Length(LBuffer) - 1 do
Memo1.Lines.Add(LBuffer[i]);
finally
FS.Free;
end;

end;
end;

问题是 FS 的大小是 -1,因此不是读...

最佳答案

如果文件流报告大小为 -1,那么您将不得不更加努力地阅读内容。这是一个虚拟文件,因此它的行为并不完全像一个文件并报告其大小也就不足为奇了。我希望它也不支持寻求。

试试这个:

var
Buffer: array [0..1023] of Byte;
BytesStream: TBytesStream;
BytesRead: Integer;
....
BytesStream := TBytesStream.Create;
repeat
BytesRead := FS.Read(Buffer, SizeOf(Buffer));
BytesStream.Write(Buffer, BytesRead);
until BytesRead < SizeOf(Buffer);

// now the contents can be read from BytesStream.Bytes
// convert to a string using TEncoding

简单地说,您读取文件,直到没有更多内容可读为止。

关于android - 如何在Delphi中打开并读取Android设备上的 "/proc/cpuinfo",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30646889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com