如何修改DELPHI中的MEMO数据,例如
0100024321392007042007590150
0100020697662007042007590150
0100020555122007042007590150
0100022090332007042007580150
我想判断倒数第6和7位当大于21小于24时把更改为21.
在MEMO中有很多这样的数据,如何一次性更改,更改后如何保存为TXT文件
0100024321392007042007590150
0100020697662007042007590150
0100020555122007042007590150
0100022090332007042007580150
我想判断倒数第6和7位当大于21小于24时把更改为21.
在MEMO中有很多这样的数据,如何一次性更改,更改后如何保存为TXT文件
var i:integer;
var s:string;
begin
memo2.Clear;
for i:=0 to form1.memo1.lines.count do
s:=memo1.lines[i];
begin
if (((strtoint(copy(s,6,7))>21) and (strtoint(copy(s,6,7))<24))) then
begin
delete(s,6,7);
Insert(inttostr(21),s,5);end;
memo2.Lines.Add(s);
end
end;
写入文件的代码:
var f:txtfile;
begin
assignfile(f,'c:\newfile.txt');
for i:=0 to form1.memo1.lines.count do
begin
writeln(f,memo2.lines[i]);
end;
closefile(f);
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
begin
str:=memo1.Lines[1];
str[4]:='A';
memo1.Lines[1]:=str;
end;
i:integer;
mystrings:tstrings;
tmpstr,tmpstr1,tmpstr2,tmpstr3:string;
begin
mystrings:=tstringlist.create;
for i:=0 to form1.memo1.lines.count-1 do
begin
tmpstr:=trim(memo1.Lines.Strings[i]);
tmpstr1:=Copy(tmpstr,1,length(tmpstr)-7);
tmpstr2:=Copy(tmpstr,length(tmpstr)-6,2);
tmpstr3:=Copy(tmpstr,length(tmpstr)-4,5);
if ((strtoint(tmpstr2)>21) and (strtoint(tmpstr2)<24)) then
tmpstr:=tmpstr1+'21'+tmpstr3;
mystrings.Add(tmpstr);
end;
mystrings.SaveToFile('c:\newfile.txt');
end;