![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
"Тонкости" применения Variant [D6, WinXP]
DeepProg © (2005-06-15 17:32:00)Приложение консольное.
Вот процедура, которая работает некорректно:
type Waste = array of array of variant;
...
procedure MakeRep(wItems:Waste;WLength:integer;var report: string);
var i:integer;
begin
for i := 0 to WLength do report:=report+#10#13+ wItems[i,0];
end;
wItems[i,0] - это строка
Программа вылетает с ошибкой, когда я ее запускаю уже вне IDE.
(модно я дамп памяти приводить не буду?)
Если debug-ить по шагам в IDE, то почему-то пропускаются все 3 процедуры writeln (вывод двух строковых констант и, собственно, содержимого report), идущие после выполнения MakeRep, но зато выполняется последняя read. И при этом report заполнена правильно - watch позволяет ее увидеть.
Мне удобно использовать variant в Waste - второе поле integer, которое используется ранее.
Проблема явно с ним, но что я сделал не так или здесь особенности применения variant?
Anatoly Podgoretsky (2005-06-24 14:56:00) [1]DeepProg (24.06.05 13:29) [11]
Не имеешь права.
DeepProg (2005-06-24 13:29:00) [2]see top
> wItems[i,0] - это строка
Ладно. Хватит препираться.
Тема закрыта.
ЮЮ (2005-06-23 09:57:00) [3]>аргументируй
Если переменная Variant, то в ней успешно может храниться и число.
И что в этом случае получишь на
report := report+#10#13+ wItems[i,0] ?
DeepProg (2005-06-22 14:54:00) [4]Будем считать, что отгадали
Победа за [b]eevcom (с)[/b]
[i]>не забудь 1 отнять[/i]
2 [b]ЮЮ[/b]
[i]>Ошибки преобразования типов[/i]
аргументируй
evvcom (2005-06-22 14:17:00) [5]
> Подсказка: ошибка Access Violation в этой процедуре.
Скорее Range Checking Error
> DeepProg
Зачем тебе WLength? Используй Length(wItems) и не забудь 1 отнять.
Anatoly Podgoretsky (2005-06-22 10:03:00) [6]DeepProg (22.06.05 07:58) [3]
Ошибаешься видел
ЮЮ (2005-06-22 10:00:00) [7]>а зачем тебе вариант ? аргуменитируй ...
Чтобв не только AV получать, но и Ошибки преобразования типов :)
Rule (2005-06-22 09:58:00) [8]DeepProg (15.06.05 17:32)
а зачем тебе вариант ? аргуменитируй ...
Rule (2005-06-22 09:57:00) [9]DeepProg (22.06.05 7:58) [3]
помоему жестоковато ты отвечаешь, не дай бог чтоб ты чему то учился и вместо того чтоб тебе подсказать, на тебя так нападали ....
DeepProg (2005-06-22 07:58:00) [10]Модеры, sorry за flood, но пусть народ развлечется
Перенесите это в треп :)))
Хорошо, что Подгорецкий этого пока не видел
Угадайте почему программа приходит в последнюю точку пропуская несколько операторов после выполнения вышеозначенной процедуры?
Подсказка: ошибка Access Violation в этой процедуре.
ЗЫ Снимаю с себя ответсвенность за смерть некоторых товарищей от смеха
ЗЗЫ В итоге Variant оказался не нужен
Digitman (2005-06-15 18:00:00) [11]
> особенности применения variant
variant он и в африке variant.
никаких особенностей.
ferr (2005-06-15 17:37:00) [12]Я не понял зачем Variant?