文本里一个3位数的开头是另一个3位数的结尾就合并成一个5位数
000 001 002 003 004008 010 011 012 013
014 016 018 020 021
022 023 026 028 030
031 032 034 038 040
如上文件里有如上数据,分隔符是tab,可以改成每个3位数一行
如果其中一个3位数的开头是另一个3位数的结尾就给他们合并成一个5位数,例如上面可以合并成00001 00002 00003 ……00040
这样数据量有点大 要效率可能要求高点 嘎嘎
感谢大家帮助 看了楼主的帖子, 我感觉自己很笨....
看了3遍, 还是没弄明白他的意思!
求聪明人解惑! 例子不具代表性。如果都是0开头,用StringFormat()前面加0补足5位数就行了 回复 1# today2004
000 001 002 003 004
008 010 011 012 013
014 016 018 020 021
022 023 026 028 030
031 032 034 038 040
000和010=00001,000和020=00002,000和030=00003,000和040=00004.
是这个意思吧? 回复 2# user3000
我也是,楼主就不能说明白点。 看不太明白,不知道是不是这个意思
00001,00002……00009,
00010,00020,00030……00090,
00100,00110,00120……
10001,10011,10021 说明白点吧 知道你说的怎么结合000 和 001 写成 00001但是没明白你要什么结果~!~ 左看右看没看明白是什么意思。只能猜
#include <array.au3>
Local $str="000,001,002,003,004,008,010,011,012,013,014,016,018,020,021,022,023,026,028,030,031,032,034,038,040"
$array=StringSplit($str,',',2)
;~ _ArrayDisplay($array)
Local $fin
For $i=0 To UBound($array)-2
$temp=$array[$i]
For $n=$i+1 To UBound($array)-1
If StringLeft($array[$n],1)==StringRight($temp,1) Then
ReDim $fin
$fin=$temp&StringRight($array[$n],2)
EndIf
Next
Next
_ArrayDisplay($fin) 是这样的 文本里 一堆3位数例如 901 ,208,304,807 要给某个3位数的结尾是另个3位数开头的这2个3位数 组合成一个五位数,如我可以组成20807 本帖最后由 netegg 于 2011-10-31 12:37 编辑
算了吧,楼主还是给出原始文件,和要的最后结果吧,别太信任自己的语文水平了 本帖最后由 afan 于 2011-10-31 12:43 编辑
208 832 如何组? 20832? 83208? 还是如蛋蛋所说,直接给出所要全部结果,不要省略号 回复 9# today2004
你将代码的第二行改为Local $str="901,208,304,807"看结果是你想要的吗? 嗯嗯 就是这样的谢谢 3mile
唉……表达能力不好 耽误很多人时间了 抱歉 000 001 如果其中一个3位数的开头是另一个3位数的结尾就给他们合并成一个5位数,例如上面可以合并成00001 不解 这里哪来的3位相同数?
页:
[1]