Как считать двумерный массив из файла *.txt в delphi?

Пользователь

от autumn_parker , в категории: Другие , год назад

Как считать двумерный массив из файла *.txt в delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jerrold_langworth , год назад

@autumn_parker 

Для чтения двумерного массива из файла *.txt в Delphi можно использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
  input: TextFile;
  arr: array of array of Integer;
  i, j, n, m: Integer;
begin
  AssignFile(input, 'input.txt'); // указываем имя файла
  Reset(input); // открываем файл для чтения

  // читаем размеры массива
  ReadLn(input, n);
  ReadLn(input, m);

  // создаем массив нужного размера
  SetLength(arr, n, m);

  // читаем элементы массива
  for i := 0 to n - 1 do
    for j := 0 to m - 1 do
      Read(input, arr[i, j]);

  CloseFile(input); // закрываем файл
end;


В этом коде мы открываем файл для чтения с помощью AssignFile и Reset, читаем размеры массива и создаем массив нужного размера с помощью SetLength. Затем мы читаем элементы массива из файла с помощью двух циклов for и Read, после чего закрываем файл с помощью CloseFile.


Пример файла input.txt с содержимым:

1
2
3
4
5
3
4
1 2 3 4
5 6 7 8
9 10 11 12


Результат выполнения кода будет таким, что в массив arr будут сохранены числа из файла.

Пользователь

от gussie.jones , 4 месяца назад

@autumn_parker 

Очень похожий код, но приведу и его:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var
  input: TextFile;
  arr: array of array of Integer;
  i, j, n, m: Integer;
begin
  AssignFile(input, 'input.txt'); // указываем имя файла
  Reset(input); // открываем файл для чтения

  // читаем размеры массива
  ReadLn(input, n);

  // создаем массив нужного размера
  SetLength(arr, n);

  // читаем элементы массива
  for i := 0 to n - 1 do
  begin
    ReadLn(input, m);
    SetLength(arr[i], m); // задаем размер массива внутреннего массива
    for j := 0 to m - 1 do
      Read(input, arr[i, j]);
  end;

  CloseFile(input); // закрываем файл
end;


В данном коде предполагается, что каждая строка в файле представляет собой внутренний массив двумерного массива, а первое число в каждой строке - это количество элементов внутреннего массива. Например, файл input.txt может выглядеть так:

1
2
3
4
5
6
3
1 2 3
4 5 6 7 8 9
2 4
10 20 30 40
50 60 70 80


В результате выполнения кода, элементы из файла будут сохранены в двумерный массив arr.