|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.11.2006, 01:09 | #1 |
Новичок
Джуниор
Регистрация: 18.11.2006
Сообщений: 2
|
проблема с файлом
program inout;
{$APPTYPE CONSOLE} uses SysUtils; var f1,f2:TextFile; mas:array of double; cnt,i:integer; str:string; begin { TODO -oUser -cConsole Main : Insert code here } cnt := 0; if not FileExists('Input.txt') then begin writeln('Input.txt doesn''t exist'); readln; exit; end; AssignFile(f1,'Input.txt'); Reset(f1); Writeln('Hello, Medved!'); while not Eof(f1) do begin Readln(f1,str); if (str <> '') then begin mas[cnt] := StrToFloat(str);// ????? cnt := cnt + 1; end; str :='';// Как правильно почистить str ? end; Writeln('The mas:'); SetLength(mas,cnt); for i := Low(mas) to High(mas) do begin Writeln(mas[i]); end; Close(f1); end. Помогите новичку! Нужно, чтобы прога считала из txt файла массив double(каждая строка - число) и сформировав массив double вывела на консоль. В чем ошибка не пойму - массив не формируется ? Последний раз редактировалось _rav; 18.11.2006 в 01:22. |
18.11.2006, 08:20 | #2 | |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
интересно получается, ты объявляешь динамический массив, что-то пытаешь в него внести, а лишь потом задаёшь его размер!
Кароче вот что надо делать: Код:
Цитата:
|
|
18.11.2006, 17:56 | #3 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,522
|
str :='';// Как правильно почистить str ?
str:=''; - так правильно. посмотри ещё str:=nil; .... |
18.11.2006, 18:18 | #4 | |
Пользователь
Регистрация: 18.11.2006
Сообщений: 32
|
Цитата:
Он переменной cnt изначальное значение задал 0, а надо 1, т.к. массив индексируется с первого элемента, а не с нулевого! ! !
Незнание - рабство, знание - свобода ! ! !
|
|
18.11.2006, 18:27 | #5 | |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,522
|
Цитата:
Но сначало надо задать его размерность. |
|
18.11.2006, 22:15 | #6 |
Новичок
Джуниор
Регистрация: 18.11.2006
Сообщений: 2
|
спасибо, заработало. я просто хотел за одно открытие файла перенести массив. в принципе можно попробовать использовать списки, но массив по смыслу задачи ожидается около 1000 чисел, список будет не очень удобен для дальнейшей обработки.
|
19.11.2006, 13:31 | #7 |
Пользователь
Регистрация: 18.11.2006
Сообщений: 32
|
Размерность - дк это да, а индексировать всеравно надо с первого, с нулевого - он будет дико ругатся(хотя кто знает )
По крайней мере я после Паскаля всегда индексирую с 1го...
Незнание - рабство, знание - свобода ! ! !
Последний раз редактировалось X=Vitamin=X; 19.11.2006 в 13:33. |
19.11.2006, 15:58 | #8 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,522
|
X=Vitamin=X, можешь хоть с 10 добавлять, и работать с элементами массива от 10....
Массив начинаеться с 0, это надо знать. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с ini файлом | workres | Общие вопросы C/C++ | 5 | 24.04.2011 22:25 |
Работаю с текстовым файлом есть небольшая проблема | Parcenson | Общие вопросы Delphi | 2 | 13.08.2008 06:46 |
Помогите с файлом | snake-as | Общие вопросы Delphi | 5 | 26.04.2008 00:08 |
работа с txt файлом | ShenDy | Общие вопросы C/C++ | 1 | 08.04.2008 22:55 |
Проблема с файлом setup на visual basic. | irbiss | Помощь студентам | 5 | 03.04.2008 15:41 |