VC,VB,,OCX控件使用问题 ( 积分: 50 )

Z

ZQFILE

Unregistered / Unconfirmed
GUEST, unregistred user!
1.先用VC写了一个OCX控件,假设为A,现在给A增加一个对象Aa,然后在对象Aa下增加一个方法Aaa,经过测试这个控件可以正常运行.
2.用VB创建一个OCX(假设为B)用于网页中,现在给B增加一个属性OBJ类型为Aa.
3.在网页中访问B的OBJ下的Aaa,就会出现问题.(用Interdev工具写的脚本可以看见Aaa方法)

请问大侠们如何解决此问题
我在DELPHI中这样做是可以的
 
1.先用VC写了一个OCX控件,假设为A,现在给A增加一个对象Aa,然后在对象Aa下增加一个方法Aaa,经过测试这个控件可以正常运行.
2.用VB创建一个OCX(假设为B)用于网页中,现在给B增加一个属性OBJ类型为Aa.
3.在网页中访问B的OBJ下的Aaa,就会出现问题.(用Interdev工具写的脚本可以看见Aaa方法)

请问大侠们如何解决此问题
我在DELPHI中这样做是可以的
 
我会改成9位的,
不要前面的13就行了。[:D]
 
做梦!
首先你说的算法是可逆的,就是把11位的可以变成6位的,6位的还可以变成11位的。
你有没有考虑这个6位十进制的数的容量是不是能容的下11位的数?
如果容不下,那不管什么算法都会出现多个11位数转换成同一个6位数。那逆向怎么办,一个6位数怎么转换成11位数?是可以转换成多个吗?那就不是可逆的了。可逆的算法是反向转换也只能是一个。
 
提供一个思路:
将这些数除以一个常数,同时取余,要求这个常数必须使结果符合以下要求:
商的结果在4位范围内,不足4位的前面补零;
余的结果在2位范围内,不足2位的前面补零;

那么转换后的数字就是:4位商+2为余
如果要转换成原数字,那就简单了
 
楼上真是异想天开,要想余的结果在2位以内,除数最多只能是100,11位数除以100后还剩9位数,怎么可能让商的结果在4位以内,按你的算法,11位数转换出来还是个11位数。
 
呵呵,见笑了
我也只是提供一个思路,没有说就得这样做啊
 
将手机号码用Byte表示可行:
如:13779944240做成一个六位数组:No:array[1..6]of byte
No[1]:=$13;
No[2]:=$77;
No[3]:=$99;
No[4]:=$44;
No[5]:=$24;
No[6]:=$0F;//最后一位补F;
还可不用No[1]的13省略一个字节就更能变成一个5位整数了;

另一种方法:
直接将11位十进制BCD码变成hex,再由Hex可以转换位BCD码,只是
中间可能需要用一个String来提供转换。
 
已经限制用十进制了。你还在用什么HEX,又是BCD码!
 
谢谢各位的探讨,对于取商和余数,小弟没有找到这个合适除数.小弟发此问是想
集思广益,看是否可以找到这个算法.希望大家继续讨论
 
楼主估计是打移动通讯的主意,偶没仔细考虑,不过感到可以用类似数据字典的方式解决,就象文件压缩的方式一样,建议你研究一下LZW等压缩算法的原理。
 
我想是不可能做到的,你的xxxxxxxx有8位,每个x是任意十进制数
而要把它压缩为xxxxxx有6位,而且x只能是十进制数
也就是1亿个数与一百万个数一一对应,不可能的。。。
建议从其它方面找办法吧!比如你的130xxxxxxxx中有哪几位是固定的或有规率的。。。。
 
多人接受答案了。
 
顶部