Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как считать integerы из фала? Совсем забыл 
:(
    Опции темы
ausar
Дата 15.2.2009, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Привет всем"!

Совсем забыл как считывать из файла. Нужно считать из файла целые числа (от 1 до 1000) которые записаны там в строчку через пробел. И никак не получается подскажите где ошибка.


Код

var i,x: integer;
    a: array[1..50] of integer;
    dfile: file of integer;
begin
assign(dfile,'data');
reset(dfile);
while not EOF(dfile) do begin
read(dfile,x);
write(' ',x);
end;
readln;
end.






Это сообщение отредактировал(а) ausar - 15.2.2009, 08:07
PM MAIL   Вверх
Dobermann
Дата 15.2.2009, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



seekeof
PM   Вверх
volvo877
Дата 15.2.2009, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(Dobermann @  15.2.2009,  09:32 Найти цитируемый пост)
seekeof 
Чего SeekEof? Не работает он с типизированными файлами, только с текстовыми. Что дальше?

ausar, показывай, как файл заполнялся. На произвольном ПРАВИЛЬНО созданном файле Integer-ов твой код нормально отработал.
PM MAIL   Вверх
Dobermann
Дата 15.2.2009, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Цитата(volvo877 @  15.2.2009,  11:47 Найти цитируемый пост)
Что дальше?

#32
PM   Вверх
ausar
Дата 15.2.2009, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Ну просто взял файл текстовый создал записал туда интегеры через пробел сохранил вот и все. Во всех букварях одно и тоже написано, но я толи букв не понимаю толи там для особо одаренных?
Может заставить прогу сделать файл? чтоб прога сама интегеры в файл записала? так это уже не по сценарию.. :(
PM MAIL   Вверх
Dobermann
Дата 15.2.2009, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Если у тебя текстовый файл и числа написанны через пробел, то используй seekeof (вместо eof) - эта функция пропускает пробелы!
PM   Вверх
volvo877
Дата 15.2.2009, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Dobermann, Тебе не видно, что файл описан, как file of integer??? Прекрати флудить уже... Надоело.

Добавлено @ 14:48
ausar, Записывать в файл - вот так:

Код
assign(dfile,'data');
rewrite(dfile);
for i := 1 to 10 do begin
  x := random(1000);
  write(dfile, x);
end;
close(dfile);

, только тогда это будет file of integer. Иначе ты получаешь текстовое представление числа, а не его машинное представление, и работать надо с Text...

Это сообщение отредактировал(а) volvo877 - 15.2.2009, 14:49
PM MAIL   Вверх
Dobermann
Дата 15.2.2009, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Цитата(volvo877 @  15.2.2009,  14:46 Найти цитируемый пост)
Dobermann, Тебе не видно, что файл описан, как file of integer??? Прекрати флудить уже... Надоело.


Цитата(ausar @  15.2.2009,  13:10 Найти цитируемый пост)
Ну просто взял файл текстовый создал записал туда интегеры через пробел сохранил вот и все.

Глаза разуй!
PM   Вверх
Virtuals
Дата 16.2.2009, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: нет
Всего: 11



во нафлудили то, ...

ausar, 
Цитата

которые записаны там в строчку через пробел.

это текстовый файл, с данными, разделенными пробелом, предположительно цифры.
а
Цитата

dfile: file of integer;

это типизированный файл, с блоками данных в 32бита

а чтобы прочитать тебе требуется
1. открыть файл как текстовый
2. читать построчно его
3. по каждой прочитанной строке пробегатся поиском пробелов, и вычленять оттуда твои предположительно цифры
примерно так
Код

var S,s2:string;
tm1,tmp2,esc:integer;
begin
s:=твоя строка причитанная из файла;
for tm1:=1 to length(s) do
 if pos(' ',s)>0 then
  begin
    s2:=copy(s,1,pos(' ',s)-1);
    delete(s,1,pos(' ',s));
    Val(s2,tmp2,esc);
    if esc=0 then writeln(inttostr(tmp2));
  end;
    if length(s)>0 then Val(s,tmp2,esc);
    if esc=0 then writeln(inttostr(tmp2));
end;


PM MAIL ICQ   Вверх
1000000dollars
Дата 16.2.2009, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 6.10.2007

Репутация: нет
Всего: 8



Господа, всё просто smile



Код

program Project3;
{$APPTYPE CONSOLE}
uses
  SysUtils;

VAR
 F : Text;
 I : integer;

begin
 Assign (F, 'file.txt');
 Reset (F);
 while not Eof (F) do
  begin
   Read (F, I);
   WriteLn (I);
  end;
 Close (F);
 WriteLn ('Done.');
 ReadLn;
end.

PM MAIL   Вверх
Virtuals
Дата 16.2.2009, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: нет
Всего: 11



1000000dollars, не ну можно так, а? из текстового файла да интегеры... smile побрил многих думаю, я точно....
PM MAIL ICQ   Вверх
Kbl4AH
Дата 13.3.2009, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: нет
Всего: 15



Цитата(Virtuals @  16.2.2009,  21:17 Найти цитируемый пост)
побрил многих думаю, я точно....

 smile 
PM MAIL ICQ   Вверх
1000000dollars
Дата 13.4.2009, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 6.10.2007

Репутация: нет
Всего: 8



Цитата(Virtuals @  16.2.2009,  21:17 Найти цитируемый пост)
1000000dollars, не ну можно так, а? из текстового файла да интегеры...


ну я не виноват, что Pascal/Delphi всё умеет ;)

За оценку спасибо smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0572 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.