永发信息网

delphi bytes类型转string

答案:3  悬赏:40  手机版
解决时间 2021-05-15 12:27

var
ok:string;
fc,i: Integer;
bytes : array of byte;

begin
写入:
fs := TFileStream.Create('car.dat', fmCreate);
ok:='This is it';
ok:=StrToHex(ok);
fc:=Length(ok); //此时ok值为:54686973206973206974
fs.Write(ok,fc);
fs.Destroy;

读取:
fs := TFileStream.Create('car.dat', fmOpenRead);
fc:=fs.Size;
SetLength(bytes,fc);
fs.Read(bytes[0],fc);
i:=0; //此时bytes的值为:(8, 225, 10, 1, 24, 255, 18, 0, 5, 210, 80, 0, 32, 255, 18, 0, 150, 213, 80, 0)
while i<fc do begin
ok:=ok+PChar(@bytes[i]);
inc(i);
end;
ok:=HexToStr(ok); //此时ok的值为:#8'?'#1#$18#$FF#$12'?'#1#$18#$FF#$12#$A#1#$18#$FF#$12#1#$18#$FF#$12#$18#$FF#$12#$FF#$12#$12#5'襊襊P '#$FF#$12#$FF#$12#$12'栒P誔P'
//并不是54686973206973206974
bytes:=nil;
ok:='';
fs.Destroy;


为什么bytes怎么才能正确转换成string?

最佳答案

看下你的代码


while i<fc do begin
ok:=ok+PChar(@bytes[i]);
inc(i);
end;


没有初始化 OK


也就是应该 OK:=''



如果还是不成功 请看下 你的 hextostr 和 strtohex 是否写正确

全部回答
你好哦。 很高兴看到你的问题。 但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。 可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。 祝你好运~! 希望我的回答也能够帮到你! 谢谢
转成指针型pchar或者其他类型再转string看看,有的时候做一个二次转换就可以实现的!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
问问和soso的关系和区别
3g手机卡能在一般智能机上用吗
LG KF510 写短信时怎么跳到下一行????急
关与端午节的名句,端午节的名言名句
遂平县河南中博物流地址在哪,我要去那里
椎间盘均可见先后缘突出
衡南县交通局我想知道这个在什么地方
鱼好消化吗,吃饺子吃完就难受,饺子是不好消
黄钻是什麽呀!我要怎样才能变成黄钻啊!...???
promise和phone的过去分词
3Q手机图片
钱和孩子那样重要?
荆州区富康口腔门诊怎么去啊,谁知道地址啊
怎么关闭无痕浏览模式,360怎么取消无痕模式??
是谁制造了人类
推荐资讯
存储卡在电脑上无法显示
一句英语句子中要是出现时间和地点,那个放前
帮忙查一下沈阳风采学校的咨询电话!还有宝岩
地下城与勇士 机械师后面的飞机是什么?那漫
一段坡共48千米,去的时候用了4.8小时,回来
QQ三國為什麼強P的時候我的裝備沒了
慈利县宝缦家纺(慈利店)这个地址怎么能查询到
歌词有JJ JJJJJJ 的DJ英文歌 是?
求沙漏里关于左耳结局的部分
道外区永胜印宇阳大药房哪位知道具体地址啊
怎么去追个女生?
歌曲名字叫什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?