как да измамя тъпия VB...

3 отговора 273 прегледа
#1

как да измамя тъпия VB...

Имам декларирани променливи a, b, c и d като byte и
If (a - b) * (c - d) > 0 Then ...
ми дава препълване щото c-d се получава отрицателно число
проблема идва основно в това, че в действителност не са някакви си 4 променливи, а са 25 масива от UDT подобно на това

type blabla
a(4) as byte
b(4) as byte
c(4) as byte
d(4) as byte
...
end type


работя с файлове и дължините е абсурд да ги пипам, а
огледален UDT като посредник към програмата не ми се прави :)

пробвах следната хитрина
Dim bug as variant
bug=1 '''replace "*" with "*bug*"
If (a - b) *bug* (c - d) > 0 Then ...

ама пак нищо не стана


няма ли някаква си функцийка нещо като int() която да преобразува какво да е число в Double или нещо подобно

Отговор
в отговор на violet gale #2

Re: как да измамя тъпия VB...

Има CDbl. Трябва да има и CByte за да обърнеш крайния резултат отново в байт

Отговор
в отговор на Killy-Man Jarro #3

Re: как да измамя тъпия VB...

if CDbl(израз)>0
така ли да го изпиша?
още не съм пробвал нямам време, ако е така може и да не отговаряш

Отговор
в отговор на violet gale #4

Re: как да измамя тъпия VB...

Funkciata Cbl(...) moje da konvertira chislo vav chislo s Double precision. Ako vatre zapishesh izraz - to togava parvo shte bade presmetnat izraza, i togava shte se izvarshva konvertiraneto, koeto - sam mojesh da se setish dali shte pomogne v sluchaia. No mojesh da izpozvash CDbl() pootdelno za vsiaka promenliva predi tia da uchastva v izraz, ili vatre v izraza da zapisvash promenlivite zagradeni s funkciata CDbl(). ;o)

Uspeh.


Щирлиц
Отговор