![]() |
|
|
Регистрация | << Правила форума >> | 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; Велик и могуч наш Object Pascal ! ICQ: 357-591-887 |
#4
|
|||
|
|||
![]() Спасибо за помощь
|