delphi读取文件内容的问题

delphi中,我想读取一个文件里面的16进制数,并且把前面的$去掉应该如何做到。?非16进制数不读取文件里面有内容a,$03F2,$33F6,b,$02F2,$31F6... delphi中,我想读取一个文件里面的16进制数,并且把前面的$去掉应该如何做到。?

非16进制数不读取

文件里面有内容

a,$03F2,$33F6,

b,$02F2,$31F6,

a,$03F2,$33F6,

b,$02F2,$31F6,

a,$03F2,$33F6,

b,$02F2,$31F6,

a,$03F2,$33F6,

b,$02F2,$31F6,

a,$03F2,$33F6,

b,$02F2,$31F6,

a,$03F2,$33F6,

b,$02F2,$31F6,
展开
 我来答
jackalwin
2011-04-15 · TA获得超过171个赞
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:316万
展开全部
//获取16进制数,你可以将没用的信息都替换掉,然后在重新组合。
HexListTxt.LoadFromFile(aStr);
for i:= 0 to HexListTxt.Count - 1 do
begin
sNewStr:= StringReplace(HexListTxt[i], '0x', '', [rfReplaceAll]);
sNewStr:= StringReplace(sNewStr, ',', '', [rfReplaceAll]);
ResultList.Add(sNewStr);
end;

//初始化HexListTxt
ConvertList:= TStringList.Create;
for i:= 0 to ResultList.Count - 1 do
begin
tmpStr:= ResultList[i];
for j:= 0 to 7 do
begin
ConvertList.Add(Copy(tmpStr, j * 4 + 1, 4));
end;
end;
HexListTxt.Text:= ConvertList.Text;
ConvertList.Free;
// Memo1.Text:= HexListTxt.Text;
ResultList.Free;
qiao_liu
2011-04-14 · TA获得超过422个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:244万
展开全部
var strList:TStrings;
result:String;
begin
strList:=TStringList.Create;
strList.LoadFromFile(文件路径);
result:=StringReplace(strList.Text,'$','',[rfReplaceAll]); //去掉文件内容中的$
...
end;

你的要求是可以达到的,只是并不是很了解你想要的效果,比如:读出到哪里去。
如果需要,请Hi我:qiao_liu,随时回答你的疑问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thomasdai
2011-04-14 · TA获得超过189个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:220万
展开全部
下面是经过测试的代码,供您参考。
//分析单行文本
procedure TForm1.AnalyseLine(ALine: string);
var
Idx, Len: Integer;
ch: Char;
strHex: string;
value: Integer;
begin
Len := Length(ALine);
Idx := 1;
while Idx <= Len do
begin
ch := ALine[idx];
if ch = '$' then
begin
Inc(Idx);
strHex := '$';
while Idx <= Len do
begin
ch := ALine[idx];
if ch in [',', #10, #13] then
Break;
strHex := strHex + ch;
Inc(idx);
end;

if (strHex <> '$') and TryStrToInt(strHex, value) then
begin
//读取到一个十六进制数据value
Memo2.Lines.Add(IntToHex(value, 4));
end;
end;
Inc(idx);
end;
end;

//分析多行文本
procedure TForm1.AnalyseLines(ALines: TStrings);
var
I: Integer;
begin
for I := 0 to ALines.Count - 1 do
AnalyseLine(ALines[I]);
end;

//分析文本文件
procedure TForm1.LoadFile(Afilename: string);
var
strs: TStringList;
begin
strs := TStringList.Create;
try
strs.LoadFromFile(AFilename);
AnalyseLines(strs);
finally
strs.Free;
end;
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
574861314
2011-04-14
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
正则
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式