var file1:Tstrings; i:integer; begin file1:=Tstringlist.Create; file1.LoadFromFile(filename); assignfile(txtfile,filename); rewrite(txtfile); for i:=0 to file1.Count-1 do begin if trim(file1.Strings[i])<>'' then writeln(txtfile,file1.strings[i]); end; closefile(txtfile); file1.Free; 我用以上的一段程序去除文本文件里面的多余的空行对于一般的空行可以去掉但是有一些是去不掉的具体的16进制的代码如上 如何操作?
file1:Tstrings;
i:integer;
begin
file1:=Tstringlist.Create;
file1.LoadFromFile(filename);
assignfile(txtfile,filename);
rewrite(txtfile);
for i:=0 to file1.Count-1 do
begin
if trim(file1.Strings[i])<>'' then
writeln(txtfile,file1.strings[i]);
end;
closefile(txtfile);
file1.Free;
我用以上的一段程序去除文本文件里面的多余的空行对于一般的空行可以去掉但是有一些是去不掉的具体的16进制的代码如上 如何操作?
A---41,1---31,中间的空格是---20,2-----32,0----30,D----44,等等,看来就是16进制吧
read a binary file and display the byte values as ASCII?
author:P.BelowtypeTDisplayProc = procedure(const s: string) of object;procedure ShowBinary(var Data; Count: Cardinal; DispProc: TDisplayProc);implementation procedure ShowBinary(var Data; Count: Cardinal; DispProc: TDisplayProc);varline: string[80];i: Cardinal;p: PChar;nStr: string[4];constposStart = 1;binStart = 7;ascStart = 57;HexChars: PChar = '0123456789ABCDEF';beginp := @Data;line := '';for i := 0 to Count - 1 dobeginif (i mod 16) = 0 thenbeginif Length(line) > 0 thenDispProc(line);FillChar(line, SizeOf(line), ' ');line[0] := Chr(72);nStr := Format('%4.4X', [i]);Move(nStr[1], line[posStart], Length(nStr));line[posStart + 4] := ':';end;if p[i] >= ' ' thenline[i mod 16 + ascStart] := p[i]elseline[i mod 16 + ascStart] := '.';line[binStart + 3 * (i mod 16)] := HexChars[(Ord(p[i]) shr 4) and $F];line[binStart + 3 * (i mod 16) + 1] := HexChars[Ord(p[i]) and $F];end;DispProc(line);end; procedure TForm1.Display(const S: string);beginMemo1.Lines.Add(S);end;procedure TForm1.Button1Click(Sender: TObject);varms: TMemoryStream;beginif Opendialog1.Execute thenbeginms := TMemoryStream.Create;tryms.LoadFromfile(OpenDialog1.FileName);ShowBinary(ms.Memory^, ms.Size, Display);finallyms.Freeend;end;end;