
02.03.2012, 17:42
|
Так проходящий
|
|
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
|
|
это как текст превратить в матрицу
PHP код:
type
tline = array of double;
tmatrix = array of tline;
function split(s: string; c: char=' '): string;
begin
result := StringReplace(s, c, #13#10, [rfReplaceAll]);
end;
function no_empties(s: string): string;
begin
while s <> StringReplace(s, #13#10#13#10, #13#10, [rfReplaceAll]) do
s := StringReplace(s, #13#10#13#10, #13#10, [rfReplaceAll]);
result := s;
end;
function List(s: string): TStringList;
begin
result := TStringList.Create;
result.Text := s;
end;
function line(s: string): tline;
var ss: TStringList;
i: integer;
begin
ss := List(no_empties(split(s)));
setlength(result, ss.Count);
for i := 0 to ss.Count - 1 do
result[i] := StrToFloat(ss[i]);
ss.Free;
end;
function convert(ss: TStringList): tmatrix; overload;
var i: integer;
begin
setlength(result, ss.count);
for i := 0 to ss.Count - 1 do
result[i] := line(ss[i]);
end;
function convert(s: string): tmatrix; overload; overload;
var ss: TStringList;
begin
ss := TStringList.Create;
ss.Text := s;
result := convert(ss);
ss.Free;
end;
function convert(a: tmatrix; format: string = ''): string; overload;
var i, j: integer;
begin
for i := 0 to length(a) - 1 do
begin
for j := 0 to length(a[i]) - 1 do
begin
if j <> 0 then result := result + ' ';
if format = '' then
result := result + FloatToStr(a[i, j])
else
result := result + FormatFloat(format, a[i, j]);
end;
result := result + #13#10;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DecimalSeparator := '.';
if memo1.Lines.Count = 0 then memo1.text := '1 2 3'#13#10'2 2 2'#13#10'3 2 1';
memo2.text := convert(convert(memo1.text))
end;
|