当前位置:主页>销售管理软件> 列表

关于文本文件换行

财务软件版1楼: 我的原始文件是从串口收的TXT文件,内容格式:“09 b5 dc ff 23 ”
我想写个转换程序,将他去掉空格并且32个字符换一行[空格不算],该怎么做呢?

2楼: 有人知道么? 如金蝶财务软件破解版

3楼: 补充一点,我的原始文件从头到尾没有换行的。

4楼: 嘿,没人知道么?在线等!

5楼: 自己顶拉!

6楼: 就是个换行问题,有人能帮忙么?

财务软件版7楼: 把你收到数据转换成ascii字符,然后再写入txt文件就好了阿,写入时用writeln()函数就可以换行。如果你会操作txt文件,这因该不是问题。

8楼: 谢谢lxw5214,不能转ASCII,有8F这样的数据,会丢码。去空格我可以用笔记本搞定,但是如何读取32个字符就插入回车和换行呢?以前没搞过,头一回。大家帮帮我。

9楼: 有个朋友给我这段代码,成功了。
Procedure TForm1.Button7Click(Sender: TObject);
Var
i: integer;
ss: String;
achar:char;
Begin
ss:='''';

For i := 1 To length(memo1.Lines.Text ) Div 32 Do
Begin
ss:=ss+copy(memo1.Lines.Text,(i-1)*32,32);//这句不懂


ss:=ss+#13#10;
End;
ss:=ss+copy(memo1.Lines.Text,(i+1)*32,length(memo1.Lines.Text)-(i+1)*32);////这句不懂
memo1.Lines.Text :=ss;
End;
其中红色两句不是很懂,能解释一下么?

10楼: 不太明白题意,所说的32个字符是指09b5dcff23 这样的字符吗?
如果我理解正确的话我做的程序,可供参考:
procedure TForm1.Button5Click(Sender: TObject);
var
i,BlankPos: integer ;
temp ,DataLine:string ;
begin
Memo1.Clear ;
temp:=
''42 2B 01 B6 3A 2B 00 03 13 2D FF FF FF 42 2B 01 B6 46 2B 00''+
''03 13 2D FF FF FF 42 2B 01 B6 56 2B 00 03 13 2D FF FF FF 42''+
''2B 01 B7 00 2B 00 03 13 2D FF FF FF 42 2B 01 B7 0D 2B 00 03''+
''13 2D FF FF FF 42 2B 01 B7 1D 2B 00 03 13 2D FF FF FF 42 2B''+
''01 B7 2B 2B 00 03 13 2D FF FF FF 42 2B 01 B7 36 2B 00 03 13''+
''2D FF FF FF 42 2B 01 B7 45 2B 00 03 13 2D FF FF FF 42 2B 01''+
''B7 52 2B 00 03 13 2D FF FF FF 42 2B 01 B7 60 2B 00 03 13 2D''+
''FF FF FF 42 2B 01 B8 08 2B 00 03 13 2D FF FF FF 42 2B 01 B8''+


''17 2B 00 03 13 2D FF FF FF 42 2B 01 B8 22 2B 00 03 13 2D FF''+
''FF FF 42 2B 01 B8 2D 2B 00 03 13 2D FF FF FF 42 2B 01 B8''+
''3D 2B 00 03 13 2D FF FF FF 42 2B 01 B8 48 2B 00 03 13 2D FF''+
''FF FF 42 2B 01 B8 54 2B 00 03 13 2D FF FF FF 42 2B 01 B8 62''+
''2B 00 03 13 2D FF FF FF 42 2B 01 B9 09 2B 00 03 13 2D FF FF''+
''FF 42 2B 01 B9 14 2B 00 03 13 2D FF FF FF 42 2B 01 B9 21 2B''+
''00 03 13 2D FF FF FF 42 2B 01 B9 2E 2B 00 03 13 2D FF FF FF''+
''42 2B 01 B9 38 2B 00 03 13 2D FF FF FF 42 2B 01 B9 45 2B 00''+
''03 13 2D FF FF FF 42 2B 01 B9 50 2B 00 03 13 2D FF FF FF 42''+
''2B 01 B9 5B 2B 00 03 13 2D FF FF FF 42 2B 01 BA 04 2B 00 03''+
''15 2D FF FF FF 42 2B 01 BA 0F 2B 00 03 15 2D FF FF FF 42 2B''+
''01 BA 1B 2B 00 03 15 2D FF FF FF 42 2B 01 BA 27 2B 00 03 15''+
''2D FF FF FF 42 2B 01 BA 33 2B 00 03 15 2D FF FF FF 42 2B 01''+
''BA 3F 2B 00 03 15 2D FF FF FF 42 2B 01 BA 4B 2B 00 03 15''+
''2D FF FF FF 42 2B 01 BA 56 2B 00 03 15 2D FF FF FF 42 2B 01''+
''BA 60 2B 00 03 15 2D FF FF FF 42 2B 01 BB 09 2B 00 03 15''+
''2D FF FF FF 42 2B 01 BB 12 2B 00 03 15 2D FF FF FF 42 2B 01''+
''BB 1E 2B 00 03 15 2D FF FF FF 42 2B 01 BB 29 2B 00 03 15''+
''2D FF FF FF 42 2B 01 BB 32 2B 00 03 15 2D FF FF FF 42 2B 01''+
''BB 3D 2B 00 03 15 2D FF FF FF 42 2B 01 BB 49 2B 00 03 15''+
''2D FF FF FF 42 2B 01 BB 52 2B 00 03 15 2D FF FF FF 42 2B 01''+
''BB 60 2B 00 03 15 2D FF FF FF 42 2B 01 BC 06 2B 00 03 15''+
''2D FF FF FF 42 2B 01 BC 10 2B 00 03 15 2D FF FF FF 42 2B 01''+
''BC 1A 2B 00 03 15 2D FF FF FF 42 2B 01 BC 27 2B 00 03 15''+
''2D FF FF FF 42 2B 01 BC 30 2B 00 03 15 2D FF FF FF 42 2B 01''+
''BC 3B 2B 00 03 15 2D FF FF FF 42 2B 01 BC 47 2B 00 03 15''+
''2D FF FF FF 42 2B 01 BC 51 2B 00 03 15 2D FF FF FF 42 2B 01''+
''BC 5C 2B 00 03 15 2D FF FF FF 42 2B 01 BD 03 2B 00 03 15''+
''2D FF FF FF 42 2B 01 BD 0D 2B 00 03 15 2D FF FF FF 42 2B''+
''01 BD 16 2B 00 03 15 2D FF FF FF 42 2B 01 BD 22 2B 00 03''+


''15 2D FF FF FF 42 2B 01 BD 2B 2B 00 03 15 2D FF FF FF 42''+
''2B 01 BD 36 2B 00 03 15 2D FF FF FF 42 2B 01 BD 41 2B 00''+
''03 15 2D FF FF FF 42 2B 01 BD 49 2B 00 03 15 2D FF FF FF 42'' ;

temp := Trim(temp) ;
dataline:= '''' ;
BlankPos:= pos('' '',temp) ;
while BlankPos>0 do
begin
dataline:=dataline+Trim(copy(temp,1,blankpos -1)) ;
delete(temp,1,BlankPos) ;
BlankPos:= pos('' '',temp) ;
if BlankPos=0 then dataline:= dataline+temp ;
end ; //去空后保存在dataline

for i:=1 to (length(dataline) div 32)+1 do
begin
memo1.Lines.Add(copy(dataline,(i-1)*32+1,32)) ;
end ; //输出到memo显示
end;

11楼: 恩,谢谢!发分~