Вниз
Скачать: CL | DM;

"Тонкости" применения Variant   Найти похожие ветки 

← →
DeepProg   (2005-06-15 17:32) [0]

Приложение консольное.
Вот процедура, которая работает некорректно:

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?


← →
ferr ©   (2005-06-15 17:37) [1]

Я не понял зачем Variant?


← →
Digitman ©   (2005-06-15 18:00) [2]


> особенности применения variant


variant он и в африке variant.
никаких особенностей.


← →
DeepProg   (2005-06-22 07:58) [3]

Модеры, sorry за flood, но пусть народ развлечется
Перенесите это в треп :)))
Хорошо, что Подгорецкий этого пока не видел
Угадайте почему программа приходит в последнюю точку пропуская несколько операторов после выполнения вышеозначенной процедуры?
Подсказка: ошибка Access Violation в этой процедуре.

ЗЫ Снимаю с себя ответсвенность за смерть некоторых товарищей от смеха
ЗЗЫ В итоге Variant оказался не нужен


← →
Rule ©   (2005-06-22 09:57) [4]

DeepProg   (22.06.05 7:58) [3]
помоему жестоковато ты отвечаешь, не дай бог чтоб ты чему то учился и вместо того чтоб тебе подсказать, на тебя так нападали ....


← →
Rule ©   (2005-06-22 09:58) [5]

DeepProg   (15.06.05 17:32)
а зачем тебе вариант ? аргуменитируй ...


← →
ЮЮ ©   (2005-06-22 10:00) [6]

>а зачем тебе вариант ? аргуменитируй ...

Чтобв не только AV получать, но и Ошибки преобразования типов :)


← →
Anatoly Podgoretsky ©   (2005-06-22 10:03) [7]

DeepProg   (22.06.05 07:58) [3]
Ошибаешься видел


← →
evvcom ©   (2005-06-22 14:17) [8]


> Подсказка: ошибка Access Violation в этой процедуре.

Скорее Range Checking Error

> DeepProg
Зачем тебе WLength? Используй Length(wItems) и не забудь 1 отнять.


← →
DeepProg   (2005-06-22 14:54) [9]

Будем считать, что отгадали
Победа за [b]eevcom (с)[/b]
[i]>не забудь 1 отнять[/i]
2 [b]ЮЮ[/b]
[i]>Ошибки преобразования типов[/i]
аргументируй


← →
ЮЮ ©   (2005-06-23 09:57) [10]

>аргументируй

Если переменная Variant, то в ней успешно может храниться и число.

И что в этом случае получишь на
 report := report+#10#13+ wItems[i,0] ?


← →
DeepProg   (2005-06-24 13:29) [11]

see top
> wItems[i,0] - это строка
Ладно. Хватит препираться.
Тема закрыта.


← →
Anatoly Podgoretsky ©   (2005-06-24 14:56) [12]

DeepProg   (24.06.05 13:29) [11]
Не имеешь права.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.027 c
5-1089305933
grun
2004-07-08 20:58
2005.07.11
Вертикальное выделение


14-1118042509
Кирилл
2005-06-06 11:21
2005.07.11
Скачать звуки


3-1116872409
Noxa
2005-05-23 22:20
2005.07.11
Запуск БД на другом компьютере.


8-1110969007
Tankist
2005-03-16 13:30
2005.07.11
Как записать звук, и проиграть?


1-1118690487
user_gosha
2005-06-13 23:21
2005.07.11
Использование переменной из одного модуля в другом




   Наверх