Sub CheckTextCodingType(Textfile)
Set fl = aqFile.OpenBinaryFile(Textfile, aqFile.faRead)
Binary1 = fl.ReadByte()
Binary2 = fl.ReadByte()
fl.Close
select case CStr(Binary1)& CStr(Binary2)
case 255254: '*Unicode (UTF-16) 前两个字节为FFFE
Log.Message("file is ctUnicode type")
TextCodingType = 21
case 239187: '*UTF8 前两字节为EFBB
Log.Message("file is ctUTF8 type")
TextCodingType = 22
case else
Log.Message("file will open via ANSI type")
TextCodingType = 20
end select
End Sub ......
一般会使用WINDOW API的情况,实在是因为VB本身不提供某些功能,但是,程式所
需又不得不然,例如:读取Registry内的资
料,VB只提供SaveSetting、Getsetting 等
系列的指令,但是它只能读取特定地区的值,要读、删、更动其他区域的值时,就无
法
使用。再如:仔细看一看Combo Box的Events,其中没有MouseMove,但这是我们经常用
上的一个Event,那该如
何呢?是的,那只有透过Winodow API。而VB呼叫Window API一
般不都使用API检视员,直接将相对应的API COPY到
我们的程式中就好,那还用什麽技
巧吗?其实不然,因为VB资料格式的问题,又加上VB本身没有指标,在许多地方需要一
些小技巧才能解决,
而且我们经常因应不同的需求,将API 检视员的宣告COPY过来後再
做一些修改,最重要的,如果有一个.DLL档,它不在API 检视员中定
义,那时,就只有
自己想办法啦。
一、 整数参数
Windows API32
位元VB
========================= ......
YXOnline已经接近尾声,为了处理一些界面的问题,测试一个C++的DLL
一个函数,用deasambling看C++的代码是没有错误的,但是到了VB,请看
b的返回值是True 不管C++和VB相互键约定True和False各对应为什么数值
这里已经是True了
但那时显示True = True 仍旧不执行第一个Msgbox
直接跳到Else
而如果省略b = True 为 If b Then 则正常通过
这是VB6第二个怪事
再F8一下就执行
啊哦
丫丫个呸!
Who the hell Microsoft think they are? ......
这几天一直在做一个小的工程,做一个文本阅读器,现在做的已经有三分之二了,从中学习到了很多,对我们以前学习的成果有了更深刻的理解.
VB是一门面向对象的程序设计,我就从面性对象的角度对他做一次总结
把VB中所有的数据,变量,控件都看做一个对象
我们所有的操作都是对对象的操作,让对象去执行某一个功能
大家先看一个例子
***********************************************************
Dim form as form
For form in forms
Load form
Next form
Dim I as integer
For i=1 to n
Print i
Next i
***********************************************************
这是一个很有趣的对比,他告诉我们,vb中所有的类,变量,他们的本质是一样的,那些变量只是没有赋予他们特定的功能.
那么是什么造成他们两个之间的区别呢?
第一: 运算符::
运算符把一个个孤立的变量联系在一起,这样的,让他们组成表达式,,句子.比如:
算术
字符串
关系:
逻辑:
a+b
好好” & “学习”
a<b
A and B
第二: 控制结构:
三大控制结构又让一个个孤立的表达式变成了函数,过程
但是当我们很多次重复的运用一个函数时,为� ......
1. 各种进制转换函数 一般的数据进制包括十进制,二进制,十六进制.十进制就是我们日常生活用到的数据进制,因此也是我们最熟悉和清楚的;二进制是计算机的基础进制,主要是因为便于用物理器件实现二进制;八进制和十六进制因为和二进制的天然的亲密关系,并且表示比二进制更方便,
1.
各种进制转换函数
一般的数据进制包括十进制,二进制,十六进制.十进制就是我们日常生活用到的数据进制,因此也是我们最熟悉和清楚的;二进制是计算机的基础进制,主要是因为便于用物理器件实现二进制;八进制和十六进制因为和二进制的天然的亲密关系,并且表示比二进制更方便,因而也成为计算机的常用表示方法.
VB中涉及到的数据进制之间的转换函数主要有如下几个:
Hex 函数: 返回代表十六进制数值的 String;
Oct 函数: 返回代表一数值的八进制值的Variant (String);
Cint函数: 强制将一个表达式转换成-32,768 至 32,767的整型;
CLng函数: 强制将一个表达式转换成-2,147,483,648 至 2,147,483,647的长整型;
Cdec函数: 强制将一个表达式转换成Decimal 数据类型;
CDbl ......
1. 在VB的Form设计时,加入一个picturebox控件,这个控件作为OLE容器,MapInfo中的地图将在该控件上显示。
2. 执行VB的函数Createobject(“MapInfo.Application”),启动MapInfo。这时MapInfo在后台启动,对用户来说不可见,不会弹出splash窗口
3. 调用MapBasic的函数Set Application Window,设置MapInfo的父窗体ID,也就是VB窗体的ID,以后的MapInfo对话框都把VB窗体作为父窗体。
4. 生成一个OLE自动化回调对象,用来处理MapInfo的回调信息。然后调用MapBasic的函数SetCallback来指向这个回调对象。
5. 调用MapBasic的函数Open Table来打开所要打开的表,这个时候仅仅是打开数据库文件而已,图层并不可见。
6. 调用MapBasic的函数Map from生成可见的地图,地图显示在picturebox内。
7. 调用MapBasic的函数Set Next Document Parent,重新定向MapInfo文档窗口的父窗体,这样地图窗口就成� ......