![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Дан файл с матрицей вида
0 0 0 0 1000 0 1 0 ... 0 0 0 0 400 0 1 1 ... ..... Надо перегнать ее в массив, с которым в дальнейшем будут производиться действия. Главный для меня вопрос как так считать данные чтобы например 1000 получалась в матрице именно как тысяча а не как единица и три нуля.Помогите кому не влом, а то сам в delphi вообще нуль. |
|
#2
|
|||
|
|||
|
Код:
var
Form1: TForm1;
Matrix: array of array of Integer;
.........................
procedure LoadMatrix(_FileName: TFileName);
var
SList, RList: TStringList;
i, j, RowCnt, ColCnt: Integer;
begin
if not FileExists(_FileName) then Exit;
SList := TStringList.Create;
RList := TStringList.Create;
try
SList.LoadFromFile(_FileName);
RowCnt := SList.Count;
SetLength(Matrix, RowCnt);
RList.Delimiter := ' ';
for i := 0 to RowCnt - 1 do
begin
RList.DelimitedText := SList.Strings[i];
ColCnt := RList.Count;
SetLength(Matrix[i], ColCnt);
for j := 0 to ColCnt - 1 do Matrix[i][j] := StrToInt(RList.Strings[j]);
end;
finally
SList.Free;
RList.Free;
end;
end; |
|
#3
|
||||
|
||||
|
Если известны размеры матрицы
n - кол-во строк = 5 m - кол-во столбцов 6 и дан файл, например, input.txt Код:
var i,j:integer;
mass:array [1..5] of array [1..6] of integer;
begin
AssignFile(input,'input.txt');
Reset(input);
for i:=1 to n do
for j:=1 to m do Read(mass[i][j]);
end;1. или используешь динамические массивы 2. или создаёшь массив такого размера, чтобы 100% влезло (что проще) Используя 2 вариант: Код:
var i,j:integer;
mass: array [1..50] of array [1..50] of integer;
begin
AssignFile(input,'input.txt');
Reset(input);
i:=1;
while not EOF(input) do
begin
j:=1;
while not EOLN(input) do
begin
Read(mass[i][j]);
j := j + 1;
end;
i := i + 1;
Readln;
end;
end; |
|
#4
|
|||
|
|||
|
Спасибо за помощь
|