对面的高手看过来,数据组合的问题,高分急求! ( 积分: 200 )

  • 主题发起人 主题发起人 anchony
  • 开始时间 开始时间
A

anchony

Unregistered / Unconfirmed
GUEST, unregistred user!
任意一组数据如:1,2,3,4,5,*,6,*,7,8,*,9,3,2&nbsp;有14位,&nbsp;把任意9位组成一组(不包括*号那位),碰到*号用0代替,不包括的那位也用0代替.如组合如下:<br>&nbsp;12345060780900&nbsp;&nbsp;(9个1了)<br>&nbsp;12345060780030<br>&nbsp;12345060780002<br>&nbsp;...............<br>&nbsp;00345060780932
 
不太看得懂LZ的意思<br>我看你说取9位(数组哪来的位),但结果的长度都是15<br>还有你这个取9&quot;位&quot;是连续的呢?还是什么?<br>建议说个简单的小例子,把的到的结果都列下<br>取的规则再说清楚点
 
逗号分隔开的为1位
 
如12345*6*78*932<br>拿出其中的9个数字组成一注
 
{<br>任意一组数据如:1,2,3,4,5,*,6,*,7,8,*,9,3,2&nbsp;有14位,&nbsp;把任意9位组成一组(不包括*号那位),碰到*号用0代替,不包括的那位也用0代替.如组合如下:<br>&nbsp;12345060780900&nbsp;&nbsp;(9个1了)<br>&nbsp;12345060780030<br>&nbsp;12345060780002<br>&nbsp;...............<br>&nbsp;00345060780932<br>}<br><br>unit&nbsp;Unit1;<br><br>interface<br><br>uses<br>&nbsp;&nbsp;Windows,&nbsp;Messages,&nbsp;SysUtils,&nbsp;Variants,&nbsp;Classes,&nbsp;Graphics,&nbsp;Controls,&nbsp;Forms,<br>&nbsp;&nbsp;Dialogs,&nbsp;StdCtrls;<br><br>type<br>&nbsp;&nbsp;TForm1&nbsp;=&nbsp;class(TForm)<br>&nbsp;&nbsp;&nbsp;&nbsp;Button1:&nbsp;TButton;<br>&nbsp;&nbsp;&nbsp;&nbsp;ListBox2:&nbsp;TListBox;<br>&nbsp;&nbsp;&nbsp;&nbsp;Edit1:&nbsp;TEdit;<br>&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;Button1Click(Sender:&nbsp;TObject);<br>&nbsp;&nbsp;private<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;Private&nbsp;declarations&nbsp;}<br>&nbsp;&nbsp;public<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;Public&nbsp;declarations&nbsp;}<br>&nbsp;&nbsp;end;<br><br>var<br>&nbsp;&nbsp;Form1:&nbsp;TForm1;<br><br>implementation<br><br>{$R&nbsp;*.dfm}<br><br>function&nbsp;StrFun(desStr:String):integer;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判断*数量<br>var&nbsp;&nbsp;i:integer;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpStr:string;<br>begin<br>&nbsp;&nbsp;i:=0;<br>&nbsp;&nbsp;while&nbsp;pos('*',desStr)&gt;0&nbsp;do<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;i:=i+1;<br>&nbsp;&nbsp;&nbsp;desStr&nbsp;:=&nbsp;copy(desStr,pos('*',desStr)+1,length(desStr)-pos('*',desStr));<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;result&nbsp;:=&nbsp;i;<br>end;<br><br>function&nbsp;StrFun2(var&nbsp;strl1:TstringList;s:string;fc:integer):String;<br>var&nbsp;i,j:integer;<br>&nbsp;&nbsp;&nbsp;&nbsp;Strl2,Strl3:TStringList;<br>begin<br>&nbsp;&nbsp;&nbsp;strl2&nbsp;:=&nbsp;TstringList.Create;<br>&nbsp;&nbsp;&nbsp;strl3&nbsp;:=&nbsp;TstringList.Create;<br>&nbsp;&nbsp;&nbsp;Strl3.Sorted&nbsp;:=&nbsp;true;<br>&nbsp;&nbsp;&nbsp;Strl3.Duplicates&nbsp;:=&nbsp;dupIgnore;<br>&nbsp;&nbsp;&nbsp;for&nbsp;i:=0&nbsp;to&nbsp;strl1.Count&nbsp;-&nbsp;1&nbsp;do<br>&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;j:=0&nbsp;to&nbsp;length(s)-fc&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Strl2.CommaText&nbsp;:=&nbsp;strl1.Strings;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Strl2.Delete(j);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strl3.Add(Strl2.CommaText);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;Strl1.Text&nbsp;:=&nbsp;Strl3.Text;<br>&nbsp;&nbsp;&nbsp;result&nbsp;:=&nbsp;Strl3.Text;<br>&nbsp;&nbsp;&nbsp;Strl2.Free;<br>&nbsp;&nbsp;&nbsp;Strl3.Free;<br>end;<br><br><br>procedure&nbsp;TForm1.Button1Click(Sender:&nbsp;TObject);<br>var&nbsp;s:string;<br>&nbsp;&nbsp;&nbsp;&nbsp;strl1,strl2,strl3:TstringList;<br>&nbsp;&nbsp;&nbsp;&nbsp;i,j,k:integer;<br>&nbsp;&nbsp;&nbsp;&nbsp;charArray:pchar;<br>begin<br>&nbsp;&nbsp;&nbsp;s&nbsp;:=&nbsp;edit1.Text;<br>&nbsp;&nbsp;&nbsp;k&nbsp;:=&nbsp;strFun(s);<br>&nbsp;&nbsp;&nbsp;s&nbsp;:=&nbsp;StringReplace(s,'*','0',[rfReplaceAll]);<br><br>&nbsp;&nbsp;&nbsp;charArray&nbsp;:=&nbsp;pchar(s);<br>&nbsp;&nbsp;&nbsp;strl1&nbsp;:=&nbsp;TstringList.Create;<br>&nbsp;&nbsp;&nbsp;strl2&nbsp;:=&nbsp;TstringList.Create;<br>&nbsp;&nbsp;&nbsp;strl3&nbsp;:=&nbsp;TstringList.Create;<br><br>&nbsp;&nbsp;&nbsp;for&nbsp;i:=0&nbsp;to&nbsp;length(s)-1&nbsp;&nbsp;do<br>&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;charArray&lt;&gt;'0'&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Strl1.Add(inttostr(i));<br>&nbsp;&nbsp;&nbsp;end;<br><br>&nbsp;&nbsp;&nbsp;for&nbsp;i:=0&nbsp;to&nbsp;Strl1.Count-1&nbsp;&nbsp;do<br>&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Strl2.Text&nbsp;:=&nbsp;Strl1.Text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Strl2.Delete(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strl3.Add(Strl2.CommaText)&nbsp;;<br>&nbsp;&nbsp;&nbsp;end;<br><br>&nbsp;&nbsp;&nbsp;Strl1.Text&nbsp;:=&nbsp;Strl3.Text;<br>&nbsp;&nbsp;&nbsp;strl3.Clear;<br>&nbsp;&nbsp;&nbsp;s&nbsp;:=&nbsp;StringReplace(s,'0','',[rfReplaceAll]);<br>&nbsp;&nbsp;&nbsp;for&nbsp;i:=&nbsp;2&nbsp;to&nbsp;14-9-k&nbsp;do<br>&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;Strl3.Text&nbsp;:=&nbsp;strFun2(Strl1,s,i)&nbsp;;<br>&nbsp;&nbsp;&nbsp;end;<br><br>&nbsp;&nbsp;&nbsp;s:=edit1.Text;<br>&nbsp;&nbsp;&nbsp;s&nbsp;:=&nbsp;StringReplace(s,'*','0',[rfReplaceAll]);<br>&nbsp;&nbsp;&nbsp;for&nbsp;j:=0&nbsp;to&nbsp;Strl3.Count-1&nbsp;do<br>&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Strl2.clear;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Strl2.CommaText&nbsp;:=&nbsp;Strl3.Strings[j];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;i:=0&nbsp;to&nbsp;length(s)-1&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;Strl2.Strings=&nbsp;inttostr(i)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strl2.Strings&nbsp;:=&nbsp;charArray<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strl2.Insert(i,'0');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;except<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strl2.Insert(i,'0');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listbox2.Items.Add(StringReplace(strl2.CommaText,',','',[rfReplaceAll]));<br>&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;FreeAndNil(strl1);<br>&nbsp;&nbsp;&nbsp;FreeAndNil(strl2);<br>&nbsp;&nbsp;&nbsp;FreeAndNil(strl3);<br><br>end;<br>end.<br>忽略异常,直接执行exe文件
 
只显示了*号等于或少于3个的情况,可以自己完善一下
 
接受答案了.
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
756
SUNSTONE的Delphi笔记
S
后退
顶部