Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2010, 18:55   #1
Sh@de
Новичок
Джуниор
 
Регистрация: 17.08.2010
Сообщений: 2
Восклицание загрузить числа из файла в массив

в некотором файле *.txt записаны числа сколько их неизвестно. подскажите пожалуйста как числа из этого файла загрузить в массив. заранее спасибо(знаю что задание простое, но я только на второй курс перехожу, с работой с файлами раньше не сталкивался, а на летнюю практику надо)если можно в простейшей форме
Sh@de вне форума Ответить с цитированием
Старый 17.08.2010, 21:52   #2
Gogent
Пользователь
 
Регистрация: 12.07.2010
Сообщений: 46
По умолчанию

Какой язык?
Gogent вне форума Ответить с цитированием
Старый 18.08.2010, 02:05   #3
DedBoroda
Пользователь
 
Аватар для DedBoroda
 
Регистрация: 15.08.2010
Сообщений: 49
По умолчанию

Код:
const vol = 30000;
var t:text;
    m:array[1..vol] of integer;
    i:integer;
begin
i:=1;
assign(t,'nekoe.txt');
reset(t);
while not eof(t) do
      begin
           Read(t,m[i]);
           inc(i);
      end;
close(t);
end.
DedBoroda вне форума Ответить с цитированием
Старый 18.08.2010, 08:11   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

DedBoroda, а как узнать сколько чисел было прочитано из файла?
А если их больше 30000?
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 18.08.2010, 11:26   #5
Gogent
Пользователь
 
Регистрация: 12.07.2010
Сообщений: 46
По умолчанию

Код:
ArrayList splitted=new ArrayList();
StreamReader sr=new StreamReader(""); //в кавычках указываешь путь к файлу
string str=sr.ReadToEnd.Replace('\n',' ').Replace('\r',' ');
splitted=str.Split(' ');
ArrayList number=new ArrayList();
foreach(string s in splitted){
double d=double.Parse(s);
numbers.Add(d);}
Gogent вне форума Ответить с цитированием
Старый 18.08.2010, 17:47   #6
DedBoroda
Пользователь
 
Аватар для DedBoroda
 
Регистрация: 15.08.2010
Сообщений: 49
По умолчанию

Цитата:
Сообщение от Grag Посмотреть сообщение
А если их больше 30000?
поставь 3000000000, тока компилировать на free, один хрен

Цитата:
а как узнать сколько чисел было прочитано из файла?
из переменной i
DedBoroda вне форума Ответить с цитированием
Старый 18.08.2010, 23:05   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

DedBoroda, 1) а с чего Вы решили, что автору топика нужен пример на Delphi ?!
2) а слабо проверить? Рискну предположить, что Ваш пример банально не откомпилируется, т.к.:
[Error]: Data type too large: exceeds 2 GB
3) а про динамические массивы Вы что-нибудь слышали?

короче, не зачёт!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.08.2010, 23:36   #8
DedBoroda
Пользователь
 
Аватар для DedBoroda
 
Регистрация: 15.08.2010
Сообщений: 49
По умолчанию

Цитата:
1) а с чего Вы решили, что автору топика нужен пример на Delphi ?! а про динамические массивы Вы что-нибудь слышали?
А это не дельфи, и компилировать не в делфи. Внесите свой вклад - напишите на другом языке свой пример.
Цитата:
2) а слабо проверить? Рискну предположить, что Ваш пример банально не откомпилируется, т.к.:
[Error]: Data type too large: exceeds 2 GB
У нас 2010 год, проблем с памятью уже давно нет и компилируется всё ИМХО.
DedBoroda вне форума Ответить с цитированием
Старый 22.08.2010, 01:25   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Внесите свой вклад - напишите на другом языке свой пример.
Зачем на другом?! я и на Delphi могу написать нормальный код. Вопрос, надо ли это Sh@de?! Судя по тому, что за 5 дней он не удосужился ничего написать, эта проблема форумчан волнует больше, чем автора топика...

Цитата:
У нас 2010 год, проблем с памятью уже давно нет и компилируется всё ИМХО.
И чем же у Вас в вашем имхо этот код компилируется?!!!
Код:
const vol = 3000000000;
var t:text;
    m:array[1..vol] of integer;
    i:integer;
begin
...
Вы, наверное, верите в компилятор, вместо того, чтобы взять и проверить?!
тогда сообщаю, этот код ни в одном известном мне компиляторе не компилируется!
Free Pascal Compiler version 2.4.0 [2009/12/18] for i386
выдаёт ошибку:
Цитата:
test1.pas(3,19) Error: The range of the array is too large
test1.pas(17) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
....
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.08.2010, 18:57   #10
lowercase
Пользователь
 
Регистрация: 15.05.2010
Сообщений: 88
Радость

вот собственно такой код в делфи консоли я написал и откомпилировал... никаких ошибок небыло... проверял файл около 1,5 гб... все норм
Код:
program read_num;
{$APPTYPE CONSOLE}
uses
  SysUtils;
var f:textfile;
    a:array of integer;
begin
  assignfile(f,'c:\num.txt');
  reset(f);
  while not eof(f) do begin
    setLength(a,length(a)+1);
    read(f,a[length(a)-1]);
    writeln(a[length(a)-1]);
  end;
  closefile(f);
end.

Последний раз редактировалось lowercase; 22.08.2010 в 19:12.
lowercase вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как загрузить массив из файла Нокс Помощь студентам 5 06.08.2010 13:37
Вычислить:у=а*(в*в*в)*с,где а,в,с-двоичные числа.Для хранения числа использ.массив! Таняпервокурсница Помощь студентам 4 04.06.2010 12:08
загрузить из файла Betty Общие вопросы Delphi 2 26.06.2009 20:40
Загрузить из файла в Edit Shouldercannon Общие вопросы Delphi 5 07.07.2008 08:32
Загрузить текст из файла в мемо Teen4jump Общие вопросы Delphi 2 17.08.2007 21:05