跪求perl程序,打开txt格式A文件,将其中空格替换为制表符,然后保存为excel格式的B文件
如题描述。比如:A.txt:aaaaaaaaabbbbbbbbb.....zzzzzzzzz在perl中打开A文件,将其中空格都替换为制表符,转行回车不变,然后保存到B文...
如题描述。
比如:
A.txt:
aaa aaa aaa
bbb bbb bbb
.....
zzz zzz zzz
在perl中打开A文件,将其中空格都替换为制表符,转行回车不变,然后保存到B文件
B.xls:(呈表格行列排布)
列1 列2 列3
第一行 aaa aaa aaa
第二行 bbb bbb bbb
.....
第n行 zzz zzz zzz
3、如果分割之后数组大小不是30的整数倍,比如分割之后一共有80个元素,那么我是需要将第5个、第35个和第65个都处理,还是只用处理第5个和第35个呢?
答:我明白你的意思,按照我之前说的通过查找“<”和“\r\n\r\n”作为分割的起始点,所有信息的长度都是一样的,都为70个字符总数,所以不用担心数组长度不一样。在单个数组中你只需要处理第5个和第35个就行,剩下的我再改~
大神你真的好给力啊有木有~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 展开
比如:
A.txt:
aaa aaa aaa
bbb bbb bbb
.....
zzz zzz zzz
在perl中打开A文件,将其中空格都替换为制表符,转行回车不变,然后保存到B文件
B.xls:(呈表格行列排布)
列1 列2 列3
第一行 aaa aaa aaa
第二行 bbb bbb bbb
.....
第n行 zzz zzz zzz
3、如果分割之后数组大小不是30的整数倍,比如分割之后一共有80个元素,那么我是需要将第5个、第35个和第65个都处理,还是只用处理第5个和第35个呢?
答:我明白你的意思,按照我之前说的通过查找“<”和“\r\n\r\n”作为分割的起始点,所有信息的长度都是一样的,都为70个字符总数,所以不用担心数组长度不一样。在单个数组中你只需要处理第5个和第35个就行,剩下的我再改~
大神你真的好给力啊有木有~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 展开
1个回答
展开全部
#!/usr/bin/perl -w
use strict;
open IN,"C:\\perl\\A.txt"; #这个是你A文件的路径,注意路径中的\要用\\
open OUT,">C:\\perl\\B.xls"; #这个是你输出的B文件的路径,注意路径中的\要用\\
while(<IN>){
$_=~s/([ \t])+/\t/g; #将一行中的空格替换成制表符
print OUT $_;#输出替换后的内容
}
close IN;
close OUT;
以上为代码,有不明白的地方,欢迎追问。
use strict;
open IN,"C:\\perl\\A.txt"; #这个是你A文件的路径,注意路径中的\要用\\
open OUT,">C:\\perl\\B.xls"; #这个是你输出的B文件的路径,注意路径中的\要用\\
while(<IN>){
$_=~s/([ \t])+/\t/g; #将一行中的空格替换成制表符
print OUT $_;#输出替换后的内容
}
close IN;
close OUT;
以上为代码,有不明白的地方,欢迎追问。
更多追问追答
追问
那如果是这样:
1. 我把txt文本读进来以后存做一个数组(所有符号和数字、字母都看做一个独立元素),然后每 30个元素作为一个小的数组。
2. 在每一个小的数组中,把第5个元素替换为制表符,其他不变
3. 输出保存为excel格式文件
完成以上操作代码应该怎么写
追答
这个可以实现,不过我需要确认以下几个问题:
1、是整个文件作为一个数组还是每行读入作为一个数组?
2、每个独立元素之间用什么分割的,还是使用的空格分割吗?
3、如果分割之后数组大小不是30的整数倍,比如分割之后一共有80个元素,那么我是需要将第5个、第35个和第65个都处理,还是只用处理第5个和第35个呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询