5,386
社区成员
发帖
与我相关
我的任务
分享
program Project1;
{$APPTYPE CONSOLE}
uses
Classes,
SysUtils;
procedure Scan(const src: string; const line: TStrings);
var
i: Integer;
temp: string;
begin
line.Clear;
temp := '';
for i := 1 to Length(src) do
begin
if src[i] = '=' then
begin
temp := '';
end
else if src[i] = '@' then
begin
line.Add(temp);
end
else
begin
temp := temp + src[i];
end;
end;
end;
const
Data = '=-0001.0@=+0000.3@=+0001.1@=+0000.1@=-0001.0@=+0000.3@=+0001.1@=+0000.1@=-0001.0@=+0000.2@';
var
line: TStringList;
i: Integer;
begin
line := TStringList.Create;
try
Scan(Data, line);
for i := 0 to line.Count - 1 do
begin
Writeln(line[i]);
end;
finally
line.Free;
end;
end.
procedure TForm1.Button1Click(Sender: TObject);
var
i, j, k: integer;
sData: string;
sList: TStringList;
begin
sList := TStringList.Create;
for i := 1 to 1000 do
begin
j := random(99999);
k := random(2);
if k = 1 then
sData := sData + '=' + formatfloat('+0000.0', j / 10) + '@'
else
sData := sData + '=' + formatfloat('-0000.0', j / 10) + '@';
end;
sList.Text := sData;
sList.SaveToFile('sData.txt');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i, j: integer;
sData: string;
sList: TStringList;
begin
sList := TStringList.Create;
sList.LoadFromFile('sData.txt');
sData := sList.Text;
sList.Clear;
for i := 0 to Length(sData) div 9 -1 do
sList.Add(Copy(sData, i * 9 + 2, 7));
ShowMessage(sList.Text);
end;