IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Из-файла в массив.
Haba
сообщение 30.05.2004 19:38
Сообщение #1





Группа: Пользователи
Сообщений: 6

Репутация: -  0  +


Господа модераторы, прошу извинения за ругательный характер заголовка предыдущей созданной мной темой.
А теперь по сабжу. Очень прошу, помогите пожалуйста: не могу найти ни в одной справке, как из файла перекопировать данные в массив... Причём не надо писать программу, опишите только одну или две строчки (уж не знаю, сколько места эта операция занимает) того, как это делается. Заранее благодарен.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
APAL
сообщение 30.05.2004 19:43
Сообщение #2


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Можно так:

f - файл
m - массив

Код
Read(f,m)

или
Код
For i:=1 to 10 do Read(f,m[i]);

или
Код
i:=1;
While not EOF(f) do
Begin
 Read(f,m[i]);
 Inc(i);
End;

или через BlockRead

Думаю найдется еще несколько способов - все зависит от поставленной задачи.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 30.05.2004 20:36
Сообщение #3


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Господа модераторы, прошу извинения за ругательный характер заголовка предыдущей созданной мной темой

Во-первых не модераторы, а модератор.
Во-вторых не господа, а товарищи! Господа денег требуют, а мы
Цитата
помогая друг другу, мы справимся с любыми трудностями!


И тему я переименовал. :D
По делу:
-------------------------------------
Если файл тектовый, то важно знать как в нем записанны элементы массива, если посточно, то используем процедуру ReadLn, для считывания элементов в файл, а если эл-ты массива записанны в строчку через пробел, то используем Read. (процедуры в цикле "пока нет конца файла повторять" - "While Not eof(f) do")
Если файл двоичный, то нужно знать его структуру.
Например:
F:file of byte
Значит каждый эл-т файла может быть эл-том массива.
Или f:file of array[1..n];
значит в файле уже записан массив, и его просто надо считать так:
read(f,a), где a - массив, точно такой как в файле.

-----
Т.е. для считывания из файла эл-тов надо использовать в цикле процедуры read или readln.

Цитата
или через BlockRead

Ну если файл не типизированный, то можно, только это сложнее и не нужно для учебных задач.
Это скорее для настоящих задач, т.к. используя BlockRead можно увеличить до максимума скорость чтения, если читать данные, размер которых совпадает с размером кластера.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
APAL
сообщение 30.05.2004 20:55
Сообщение #4


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Респект!

:D


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Haba
сообщение 30.05.2004 21:26
Сообщение #5





Группа: Пользователи
Сообщений: 6

Репутация: -  0  +


Код
i:=1;
While not EOF(f) do
Begin
Read(f,m[i]);
Inc(i);
End;


Вот именно это мне и нужно было! Огромнейшее спасибо!

Сообщение отредактировано: volvo - 22.01.2005 13:44
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 13:42
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"