Вопрос № 59290: Здравствуйте, как считать с файла Ciphry.in в масив числа? Колличество чисел в файле не оганичена. Пример чисел в файле в приложении....
Вопрос № 59.290
Здравствуйте, как считать с файла Ciphry.in в масив числа? Колличество чисел в файле не оганичена. Пример чисел в файле в приложении.
Приложение:
Отправлен: 17.10.2006, 23:08
Вопрос задал: ataman (статус: 2-ой класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Strory
Здравствуйте, ataman!
Итак, в главном цикле будем читать файл, пока он не кончится и записывать считываемы данные в массив. Дополнительно введём проверку на выход за границы массива. Будем считать, что файл содержит только числа в установленном условием формате.
В итоге, получим:
const
N = 100; var
i, num: integer;
a: array [1..N] ofinteger; begin
Assign(input, 'Ciphry.in');
Reset(input);
i := 1; whilenot eof dobegin
ReadLn(num); if i <= N do
a[i] := num;
inc(i); end;
Close(input); end.
Удачи! Strory.
Ответ отправил: Strory (статус: Практикант)
Ответ отправлен: 18.10.2006, 00:59
Отвечает: Verena
Здравствуйте, ataman!
Если совсем не ограничивать количество записей в файле, то можно сделать всё то же самое (как в предыдущем ответе), но с использованием динамического массива. Предварительно считаем количество записей в файле и выделяем память под массив из стольких же элементов.
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: 2-ой класс)
Ответ отправлен: 18.10.2006, 01:27
Отвечает: sir henry
Здравствуйте, ataman!
Если Вы используете Turbo Pascal, то при заранее неизвестном кол-ве чисел, наверное лучше использовать TCollection, который представляет из себя динамический массив с уже готовыми методами для манипулирования с ним. Если FreePascal, то любой объект из Дельфи - TList и т.п.
Что-то типа такого:
Program tcol;
Uses Objects;
Var
F: Text;
massiv: PCollection;
chislo: ^Integer;
chf: Integer;
Begin
massiv:=New(PCollection, Init(20, 10));
Assign(F, 'Ciphry.in');
Reset(F);
WriteLn('Начинаем...');
While not Eof(F) Do
Begin
New(chislo);
Read(F, chf);
chislo^:=chf;
massiv^.Insert(chislo);
End;
Close(F);
WriteLn('Количество считаных чисел из файла: ', massiv^.Count);
ReadLn;
Dispose(massiv, Done);
End.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 18.10.2006, 09:56