Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
0 / 0 / 2
Регистрация: 12.09.2012
Сообщений: 91

Запись многомерного массива в файл с сохранением вида таблицы

17.09.2012, 05:57. Показов 3547. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, как записать многомерный массив в файл в виде таблицы или импортировать его в Excel.

Delphi
1
2
3
4
5
6
7
8
9
Begin
     AssignFile(F,'Array.txt');
     Rewrite(F);
      for i:=0 to n-1 do
      for j:=0 to m-1 do
      Write(F,Arr[i,j],'; ');
      Writeln(F);
      CloseFile(F);
End;
Чего-то не хватает в коде. Как-то должно быть распознавание конца строки массива и переход на новую строку.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.09.2012, 05:57
Ответы с готовыми решениями:

Запись многомерного массива в нетипизированный файл
Собственно как? Ну и чтобы потом его считать оттуда можно было.. Перебором всех значений через for както не охота. Про одномерный...

Запись многомерного массива в текстовый файл.
Добрый вечер! Существует следующая проблема. Существует трехмерный массив (например А(6,5,3)). Требуется сохранить его в текстовый файл,...

Генерация таблицы из многомерного массива
Есть массив: Array ( => Array ( => Array ( => 2

11
Эксперт 1С
 Аватар для OverDozero
1198 / 333 / 132
Регистрация: 07.04.2011
Сообщений: 1,766
17.09.2012, 07:59
Так?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm1.Button1Click(Sender: TObject);
var
tx:textfile;
i,j:integer;
a:array [1..10,1..10] of integer;
begin
 randomize;
 AssignFile(tx,'C:\Documents and Settings\Студент\Мои документы\Files.txt');
 Rewrite(tx);
  for i:=1 to 10 do
   begin
   for j:=1 to 10 do
    begin
     a[i,j]:=Random(100);
     Write(tx,a[i,j],';');
    end;
    writeln(tx);
    end;
    closefile(tx);
     end;
end.
Вложения
Тип файла: rar mass.rar (3.1 Кб, 27 просмотров)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33416 / 21524 / 8238
Регистрация: 22.10.2011
Сообщений: 36,929
Записей в блоге: 12
17.09.2012, 10:50
Цитата Сообщение от Jil Посмотреть сообщение
Чего-то не хватает в коде.
Delphi
1
2
3
4
5
6
      for i:=0 to n-1 do
      begin // <--- Раз 
         for j:=0 to m-1 do
         Write(F,Arr[i,j],'; ');
         Writeln(F);
      end; // <--- Два
P.S. Чтобы получить действительно таблицу - лучше выводить числа с определенным форматом. Скажем, Write(F, Arr[i, j]:8)
0
0 / 0 / 2
Регистрация: 12.09.2012
Сообщений: 91
17.09.2012, 11:56  [ТС]
UI, Спасибо. Подскажи, если использовать твой пример кода записи массива в файл, то где в коде программы разместить привязку файла на диске к переменной в коде, открытие файла для записи, и закрытие его по завершению записи массива - перед рандомным созданием массива в коде, или все выше перечисленное в одном блоке описывающим что делать если активировали определенный CheckBox?
Можешь привести пример кода выше описанных действии?
За ранее Благодарен.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33416 / 21524 / 8238
Регистрация: 22.10.2011
Сообщений: 36,929
Записей в блоге: 12
17.09.2012, 12:16
Jil, я отделяю интерфейс от логики. То есть, сохранение файла сделал бы отдельной процедурой, куда передавал бы имя файла и сам массив, и вызывал бы ее тогда, когда нужно (а уж по каким критериям определять, когда нужно - это твоя задача )
0
0 / 0 / 2
Регистрация: 12.09.2012
Сообщений: 91
17.09.2012, 12:47  [ТС]
Кажись смысл я уловил. Но до или после создания массива, необходимо делать привязку, создавать и открывать файл для записи?
Обясни, пожалуйста, для неграмотных в этом деле)
0
210 / 169 / 24
Регистрация: 24.04.2012
Сообщений: 615
17.09.2012, 13:22
Это как поднимать стульчак, чтоб пописать. Ты до еды поднимаешь или после?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33416 / 21524 / 8238
Регистрация: 22.10.2011
Сообщений: 36,929
Записей в блоге: 12
17.09.2012, 13:29
Чего ты собрался сохранять до создания массива и его инициализации? Процедура описывается в любом месте программы:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
type
   TIntMatrix = array of array of integer;
 
procedure SaveArr(fn : string; arr : TIntMatrix);
var F : TextFile;
begin
   AssignFile(F, fn);
   Rewrite(F);
   for i := Low(arr) to High(arr) do
   begin
      for j := Low(arr[i]) to High(arr[i]) do
         write(F, arr[i, j]:8);
      writeln(F);
   end;
   CloseFile(F);
end;
, а ее вызов будет уже после того, как вызовется SetLength и в массив будут занесены данные.
0
0 / 0 / 2
Регистрация: 12.09.2012
Сообщений: 91
17.09.2012, 13:59  [ТС]
Спасибо огромное. Может тогда подскажешь мне, как вызвать потом данный тобой пример процедуры. Через час лабу сдавать, а эт совсем новая тема для меня)
За ранее благодарен.
Если можно, покажи как вызвать процедуру по активации чекбокса.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33416 / 21524 / 8238
Регистрация: 22.10.2011
Сообщений: 36,929
Записей в блоге: 12
17.09.2012, 14:04
Delphi
1
2
3
4
5
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
   if (Sender as TCheckBox).Checked then
      SaveArr('F:\testmx.txt', arr);
end;
0
0 / 0 / 2
Регистрация: 12.09.2012
Сообщений: 91
18.09.2012, 12:50  [ТС]
UI, СПАСИБО за то что выручаешь, а не посылаешь.... в гугл) хотя я и там был)

код переписал, еще не проверял..но надеюсь все будет ок.
Спасибо.

Добавлено через 22 часа 25 минут
К сожалению запустить код не удалось. Причину так и не понял. Возможно неправильно создаю процедуру или неправильно на нее ссылаюсь.
0
0 / 0 / 2
Регистрация: 12.09.2012
Сообщений: 91
18.09.2012, 13:06  [ТС]
Не мог бы ты вставить в код моей программы данный фрагмент отвечающий за запись в файл.
И как надо изменить код чтобы в один файл записывалась не только матрица но и все результаты вычислений (среднее, максимальное, минимальное, и другие данные согласно заданным условиям)?
За ранее благодарен.

P.S. Код прикреплен.
Вложения
Тип файла: txt Unit1.txt (5.6 Кб, 12 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.09.2012, 13:06
Помогаю со студенческими работами здесь

Разбор многомерного массива для таблицы
Доброго времени суток, помогите понять как правильно пропарсить многомерный массив для таблицы: foreach ($arrays as $array) ...

Запись многомерного массива в базу данных MySQL в PHP
Доброго времени суток! Я новичок в программировании, и столкнулся с такой проблемой. У меня есть файл: test.csv содержит банальные...

Файл: Записать в файл массив строк, расположив каждый элемент массива на отдельной строке с сохранением порядка.
Дан массив строк. Записать их в файл, расположив каждый элемент массива на отдельной строке с сохранением порядка.

Не получается создать файл, сохранением массива в файле и заполнение массива значениями из файла
Здравствуйте. Я уже второй день пытаюсь решить проблему с созданием файла, сохранением массива в файле и заполнением массива информацией из...

Функция genfit (регрессия функцией заданного вида) для многомерного случая
Для функции genfit есть много примеров парной регрессии (зависимость Y от X). А если мне нужно установить зависимость Z от X и Y...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru