急。。。。。。。。

sgwk 2005-12-20 11:21:47
本人水平低,现遇到下面的问题。请大家帮忙指教一下。
有一组数字是12345123451234512345
12123121212121212111
共有n行,每行20位
现要求将其变成12345 12345,
12345 12345,
12123 12121,
21212 12111,
有谁知道,请告之一下。谢谢。
...全文
66 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sgwk 2005-12-21
  • 打赏
  • 举报
回复
另一种方式,可能土了些。不过可以用。


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
ProgressBar1: TProgressBar;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
s1: TStringList;
s2: TStringList;
s3: TStringList;
s4: tstringlist;
i: integer;
ss1: string;
ss2: string;
sa:string;
sb:string;
sc:string;
sd:string;
sourcedataname:string;
finallname:string;
begin
form1.OpenDialog1.FileName:='';
form1.SaveDialog1.FileName:='';
form1.OpenDialog1.Execute;
if form1.OpenDialog1.FileName<>''then
begin
begin
sourcedataname:=form1.OpenDialog1.FileName;
s1:= TStringList.Create;
s2:=TStringList.Create;
s3:=TStringList.Create;
s4:=TStringList.Create;
form1.ProgressBar1.Position:=0;
form1.ProgressBar1.Min:=0;
form1.ProgressBar1.Max:=100;
s1.LoadFromFile(sourcedataname);
form1.ProgressBar1.Position:=form1.ProgressBar1.Position+10;
try
for i:=0 to s1.Count-1 do
begin
ss1:=s1.strings[i];

ss2:=ss1;
s2.Clear;
sa:=copy(ss1,1,5);
sb:=copy(ss1,6,5);
sc:=copy(ss1,11,5);
sd:=copy(ss1,16,5);

ss1:=sa+' '+sb+',';
ss2:=sc+' '+sd+',';

s3.add(ss1);
s3.add(ss2);
end;
form1.ProgressBar1.Position:=form1.ProgressBar1.Position+50;
finally
form1.SaveDialog1.Execute;
form1.ProgressBar1.Position:=form1.ProgressBar1.Position+30;
finallname:=form1.SaveDialog1.FileName;
if form1.SaveDialog1.FileName<>'' then
begin
s3.SaveToFile(finallname);
form1.ProgressBar1.Position:=form1.ProgressBar1.Position+10;
showmessage('数 据 转 换 成 功! ');
s1.Free;
s2.free;
s3.Free;
end
else
showmessage('数 据 转 换 不 成 功! ');

end;


end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Close;
end;

end.
老之 2005-12-21
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
line:string;
begin
for i:=0 to Memo1.Lines.Count-1 do
begin
line:=Memo1.Lines.Strings[i];
for j:=1 to 24 do
if j mod 12=0 then
Insert(',',line,j)
else
if j mod 6=0 then
Insert(' ',line,j);
Memo1.Lines.Strings[i]:=line;
end;
i:=0;
while i<(Memo1.Lines.Count-1)*2do
begin
line:=Memo1.Lines.Strings[i];
Insert(#13+#10,line,13);
Memo1.Lines.Strings[i]:=line;
i:=i+2;
end;
end;

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧