Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 141
от 22.05.2003, 00:00

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 241
Отправлено ответов: 800
Активность: 331.9 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Ayl
Статус: Профессиональный
Общий рейтинг: 119.16
[Подробней >>]
BOLT
Статус: Опытный
Общий рейтинг: 160.46
URL: В помощь начинающему программитсу Assembler, C/C++
[Подробней >>]
_vt
Статус: Доверительный
Общий рейтинг: 121.11
[Подробней >>]
 
Bill
Статус: Доверительный
Общий рейтинг: 180.76
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 233. Здравствуйте, уважаемые эксперты! Помогите найти ошибку в программе, при записи данных из коллекции ... (ответов: 4)

Вопросов: 1, ответов: 4


 Вопрос № 233

Здравствуйте, уважаемые эксперты! Помогите найти ошибку в программе, при записи данных из коллекции в файл выдается ошибка, подскажите, как исправить. Заранее благодарен!!!!


Приложение:


Вопрос отправлен: 18.05.2003, 13:59
Отправитель: Fess (fess_r@kuzbass.stack.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Приветствую Вас, Fess!
Элементарно. У тебя в подпрограмме PrintKnigi вводится локальная файловая переменная f. После чего ты пытаешься записать с ее помощью, но она у тебя ни с чем не связана.
Тебе вообще в этой процедуре не нужна локальная переменная. Так как у тебя описана локальная процедура PrintKnigi в процедуре PrintKnigiList, то все переменные из процедуры PrintKnigiList являются глобальными для процедуры PrintKnigi. В том числе и переменная f.

Ответ отправлен: 18.05.2003, 23:10
Отправитель: Ayl


Отвечает BOLT

Доброе время суток, Fess!
У меня нет компилятора Delphi.Скажи название ошибки и где курсор устанавливается, тогда помогу чем смогу.


Ответ отправлен: 19.05.2003, 17:50
Отправитель: BOLT


Отвечает _vt

Здравствуйте, Fess!
В конструкторе Tcol.init вместо New(...) напиши inherited Init(3,1){к примеру} и удали var f:text из процедуры PrintKnigi, и всё!!!
p.s. А названия книг я так и не расшифровал... :(


Ответ отправлен: 19.05.2003, 02:10
Отправитель: _vt


Отвечает Bill

Доброе время суток, Fess!
Да..., проблем при чтении две - кодировки и длинные строки. Из-за кодировки не уверен, что правильно поступаю - я нажимаю F3 (cmOpen). Так?
Сначала о недостатках:
1) Напрасно двум различным переменным типа Text присвоили одинаковые имена. Это не ошибка, но Вам труднее будет разобраться, с какой работаете.
Ошибки:
1) У меня ошибка была Error 202: Stack overflow error.
и естественно - вот рекурентный вызов
constructor TCol.Init(KL:PCol);
begin
KL:=New(PCol,Init(nil));
из констрактора Вы вызываете этот же констрактор. Достаточно было
Inherited Init(10, 5); Первый параметр - начальный размер коллекции, второй - на сколько увеличиать, когда будет достигнута граница.
Следовательно, в Вашем случае конструктору не нужны параметры вообще.
2) Далее, удали в этом констракторе . Он и так знает, что о каком Insert идет речь.
3) Теперь ошибки в procedure TMyAppl.PrintKnigiList; Их много.
3-1) Первая большая связана с моим первым замечанием (то есть недостаток привел к ошибке!):
У вас две переменных f типа Text (!!!!!!!!...).
Одна в procedure TMyAppl.PrintKnigiList;, а вторая в procedure PrintKnigi(P:PKnigi);far;
Но это две разные переменные! Только названы одинаково.
Следовательно, обязательно появление ошибки: Error 105: File not open for output.
Чтобы убедиться, пройдитесь отладчиком с показом f (CTRL+F7) и F7/F8.


Ответ отправлен: 19.05.2003, 10:20
Отправитель: Bill



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (40)
C / C++ (32)
Perl (7)
Builder / Delphi (18)
Pascal (31)
Basic / VBA (15)
Java / JavaScript (12)
PHP (7)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (44)
Windows NT/2000/XP (33)
"Железо" (32)
Поиск информации (16)
Администратору
Windows NT/2000/XP (21)
Linux / Unix (10)
Юристу
Гражданское право (6)
Семейное право (4)
Трудовое право (5)
КоАП (4)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование


Яндекс цитирования
© 2003 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное