解决方案 »
- cnpack怎么查看窗体里所有的事件
- 高分求助各位:从三方软件内获得URL地址
- 关于程序被系统回收的问题,高手进来指点下
- 如何用文件存储变长记录结构数据?
- 在代码中怎样判断sql server 服务管理器是否启动?
- 用Tmemo控件显示memory字段时,为什么有时会显示成问号?
- 郁闷。散分,进者有分。
- 请问delphi6下编的程序用delphi5带的installshield软件打包可以吗?
- 那里有EHLIB2.0的注册版
- 请问在Delphi5怎样动态创建动态拓扑图?
- 低级问题:如何把DBGrid查询的在不删除的情况下增加第二次查询的内容
- 新手交流贴,给firebird.FireBird的序列号生成器。
bDel:=false;
for i:=ifrom+1 to 1000 do
if bDel and 存在(i) then
begin
靠右输出:format('%.3d-%.3d',[ifrom,i-1]);
bDel:=false;
ifrom:=i;
end
else
if not bDel and not 存在(i) then
begin
靠左输出:format('%.3d-%.3d',[ifrom,i-1]);
bDel:=true;
ifrom:=i;
end;
sl:tstringlist;
i:integer;begin
i:=sl.IndexOf('0004');
if i>0 then sl[i]:=' '+ sl[i];
end;
// 窗体 unit1.dfm
object Form1: TForm1
Left = 218
Top = 155
Width = 728
Height = 437
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Memo1: TMemo
Left = 24
Top = 32
Width = 137
Height = 289
Lines.Strings = (
'0001'
'0002'
'0003'
'0004'
'0005'
'0006'
'0007'
'0008'
'0009'
'0010'
'0011')
TabOrder = 0
end
object Memo2: TMemo
Left = 184
Top = 32
Width = 129
Height = 289
Lines.Strings = (
'0004'
'0007'
'0008'
'0009')
TabOrder = 1
end
object Memo3: TMemo
Left = 336
Top = 32
Width = 145
Height = 289
TabOrder = 2
end
object Button1: TButton
Left = 504
Top = 40
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 3
OnClick = Button1Click
end
end//单元 unit1.pasunit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Memo3: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
str1: string;
sl: tstringlist;
begin
str1:= '';
for i:=memo1.Lines.Count downto 0 do
if memo2.Lines.IndexOf(memo1.Lines.Strings[i]) <> -1 then
memo1.Lines.Strings[i]:= ' ';
for i:= memo2.Lines.Count-1 downto 1 do
if strtoint(memo2.Lines.Strings[i]) <> strtoint(memo2.Lines.Strings[i-1])+1 then
memo2.Lines.Insert(i,' '); for i:=0 to memo1.Lines.Count -1 do
str1:= str1+memo1.Lines.Strings[i]+'-'; sl:= tstringlist.Create;
sl.Delimiter:= ' ';
sl.DelimitedText:= str1;
for i:= sl.Count -1 downto 0 do
begin
sl.Strings[i]:= stringreplace(sl.Strings[i],'-','',[rfReplaceAll]);
if trim(sl.Strings[i]) = '' then
sl.Delete(i)
else
if length(sl.Strings[i]) > 4 then
sl.Strings[i]:= copy(sl.Strings[i],1,4)+'-'+
copy(sl.Strings[i],length(sl.Strings[i])-3,4);
end; for i:= 0 to sl.Count -1 do
memo3.Lines.Append(sl.Strings[i]); str1:= '';
for i:=0 to memo2.Lines.Count -1 do
str1:= str1+memo2.Lines.Strings[i]+'-'; sl.Delimiter:= ' ';
sl.DelimitedText:= str1;
for i:= sl.Count -1 downto 0 do
begin
sl.Strings[i]:= stringreplace(sl.Strings[i],'-','',[rfReplaceAll]);
if trim(sl.Strings[i]) = '' then
sl.Delete(i)
else
if length(sl.Strings[i]) > 4 then
sl.Strings[i]:= copy(sl.Strings[i],1,4)+'-'+
copy(sl.Strings[i],length(sl.Strings[i])-3,4);
end; for i:= 0 to sl.Count -1 do
memo3.Lines.Strings[i]:= memo3.Lines.Strings[i]+' '+sl.Strings[i];end;end.
结帖吧