VB程序员博客

VB程序开发

我想在VB中实现以下getvar函数的功能  获取和返回给定变量名的变量值
已经找了一整天了,还没有结果呀

9.5.1  getvar函数
getvar函数用于获取和返回给定变量名的变量值,该变量名由参数name给定,变量名必须遵循wml有关变量命名的语法和规定。如果参数指定的变量不存在,那么函数就会返回空字符串。getvar函数的语法格式如下:

wmlbrowser.getvar(name)

其中的参数name必须是字符串形式表示的变量名,变量值也将以字符串的形式返回。如果变量名的语法不正确,那么函数就会返回无效值invalid。

例如,在下面的几行程序中,变量name被赋值"good!",所以当使用getvar函数测试它的变量值的时候,会得到"good!"的结果。

var name = "good!";

var a = wmlbrowser.getvar("name");                      // 返回变量name的值,故a = "good!"

还有常量    获取和返回给定常量名的常量值
C# 的资料复制到VB版了!在VB中到底能不能实现getvar函数的功能呀!!!
获取和返回给定变量名的变量值
还搞不定!估计不行吧,VB不支持泛型

所谓的变量常量编译后都是一个内存地址而已VB里面据我所知没有类似的方法.

但是有一个折衷方案,就是使用CallByName.

此法使用的限制就相对来说大了,需要目标属性/常量是某个对象的公有接口.

仔细想想就能了解,这是在调用COM接口,所以能以字符串来标志接口名称.


我想在VB中实现以下getvar函数的功能  获取和返回给定变量名的变量值
已经找了一整天了,还没有结果呀

9.5.1  getvar函数
getvar函数用于获取和返回给定变量名的变量值,该变量名由参数name给定,变量名必须遵循wml有关变量命名的语法和规定。如果参数指定的变量不存在,那么函数就会返回空字符串。getvar函数的语法格式如下:

wmlbrowser.getvar(name)

其中的参数name必须是字符串形式表示的变量名,变量值也将以字符串的形式返回。如果变量名的语法不正确,那么函数就会返回无效值invalid。

例如,在下面的几行程序中,变量name被赋值"good!",所以当使用getvar函数测试它的变量值的时候,会得到"good!"的结果。

var name = "good!";

var a = wmlbrowser.getvar("name");                      // 返回变量name的值,故a = "good!"

还有常量    获取和返回给定常量名的常量值
C# 的资料复制到VB版了!在VB中到底能不能实现getvar函数的功能呀!!!
获取和返回给定变量名的变量值
还搞不定!估计不行吧,VB不支持泛型

所谓的变量常量编译后都是一个内存地址而已VB里面据我所知没有类似的方法.

但是有一个折衷方案,就是使用CallByName.

此法使用的限制就相对来说大了,需要目标属性/常量是某个对象的公有接口.

仔细想想就能了解,这是在调用COM接口,所以能以字符串来标志接口名称.


本地输入数据。然后点查询后提交数据给网站的服务器,(控件)接受他返回的数据然后显示出来,请问是用Inet控件好还是只用Webbrowser控件。还是两个结合起来好呀。
(注:根据输入的数据到相应的网站上查询,再接受返回的数据,并以网页形式显示)

如果两个结合起来用,那getchunk接受后的数据怎么以网页形式显示在webbrowser中,不会webbrowser解析HTML。

请大家给点思路,用哪个控件做呀

学习VB没多久,望各位牛人帮忙下

呵呵是啊


本地输入数据。然后点查询后提交数据给网站的服务器,(控件)接受他返回的数据然后显示出来,请问是用Inet控件好还是只用Webbrowser控件。还是两个结合起来好呀。
(注:根据输入的数据到相应的网站上查询,再接受返回的数据,并以网页形式显示)

如果两个结合起来用,那getchunk接受后的数据怎么以网页形式显示在webbrowser中,不会webbrowser解析HTML。

请大家给点思路,用哪个控件做呀

学习VB没多久,望各位牛人帮忙下

呵呵是啊


我在asp中登陆成功后会返回一个数据串

但是我不知道怎么用vb来接收这个数据!

请高人指点一下 谢谢

这个好像是asp之间的传统吧!

我现在是asp网页登陆后就会返回一个字符串。

我需要用VB取得这个字符串

顶!没人知道吗

用inet控件很容易获取啊。
a=Inet1.OpenURL("http://****/test.asp")

我有个办法

1.打开vb6.0  工具-部件-internet transfer control 6.0 - 确定
2.把控件加入到窗体设计器  name属性为inetget
3.加入以下代码
Private Function getdata(TheUrl As String)
Dim back As String
back = inetget.OpenURL(TheUrl)
getdata = back
End Function

Private Sub Form_Load()
inetget.Protocol = icHTTP
MsgBox getdata("http://www.hao123.com")
End Sub

程序进入后显示获得的数据

如果你想获得自己编写的asp数据
打开记事本或其他asp编辑工具

输入
<%
response.write("网页数据")
%>
保存为getdata.asp

在vb中用MsgBox getdata("http://www.你的域名.xx/getdata.asp")

这都是我自己写的  费了点时间  该给满分吧

补充  是登陆成功啊    容易啊  还是我上面说的function 
dim a as string
a=getdata("http://www.你的域名.xx/getdata.asp?username=admin&password=admin")
if a ="密码错误" then
  msgbox "密码错误"
elseif a="没有用户名" then
  msgbox "没有找到该用户名"
end if

asp 中判断然后和上面一样输出信息   

该清楚了吧  还不清楚    email:278481206@qq.com
呵呵  我够热情吧

http://blog.csdn.net/vansoft/archive/2008/12/18/3547423.aspx
我的博客

2008 和 van都给的东西不错。

不过个人认为van的更好点。还有van是否可以解释一下
Public Function PostInfo(ByVal WebServerAddress As String, _
                          ByVal Port As String, _
                          ByVal WebPageName As String, _
                          ByVal CommandString As String, _
                          Optional ByVal PostData As String = "") As String

函数中每个参数的意义? 谢谢

稍后送分


在VB中打开SQL函数返回的表后,如何是RecordCount不返回-1
返回sql函数返回的表的正确条数

检查你的sql语句
先在数据库中运行看

把你的sql语句在sql查询分析器中执行看看…

使用sql返回的表,有记录的,

是用SQL函数返回的表,而且是有记录的

把您的语句贴上来。

select * from dbo.getInventory_JITInventory_fun('" & CZYname & "')

楼主您是否是想查询('" & CZYname & "') 定义的内容在表里有多少条?

rs.CursorLocation = adUseClient

要返回recedcount,要设置客户端游标,如楼上open前面加上:rs.CursorLocation = adUseClient

谢谢你们!问题解决了


我需要返回查询结果在记录集中所在位置,有一个笨办法,但是效率太低,有什么好的解决办法没

笨办法

dim   curnum   as   integer

rs.open "select   *   from   data_info ",conn,1,3
if   rs.recordcount <> 0   then
do   while   not   rs.eof
curnum=curnum+1
if   rs( "ID ")= "DT070501137 "   then
exit   do
end   if
loop
end   if
rs.close

如果记录多的话,速度就爆慢,有什么更好的办法没

WHERE  

或者在   Recordset   使用   SEEK()/FIND()   函数

请参考   MSDN

不行啊,老兄

select   *   from   data_info   where   ID= 'DT070501137 '

数据库允许的话在加个自增字段吧,那就可以根据Select   count(自增字段)   from   表   where   自增字段 <(select   自增字段   from   表   where   ID= 'DT070501137 ')了

TO   CathySun118(斯年)
你可能理解错误题目了,我不是要查询,只是要返回这条记录在整个数据集中的第几行

TO   danielinbiti(金)  
表中是有一个字段为自增字段,但是这个字段并不能代表所在记录行,中间可能有数据被删除的,所以并不连贯

ado的AbsolutePosition属性。

'Try   it!

Sub   ADOFindRecord()

      Dim   cnn   As   New   ADODB.Connection
      Dim   rst   As   New   ADODB.Recordset

      '   Open   the   connection
      cnn.Open   "Provider=Microsoft.Jet.OLEDB.4.0; "   &   _
            "Data   Source=.NorthWind.mdb; "     'Your   Source   Database   path

      '   Open   the   recordset
      rst.Open   "Customers ",   cnn,   adOpenKeyset,   adLockOptimistic
     
      '   Print   the   absolute   position
      Debug.Print   "rst.AbsolutePosition_1= ";rst.AbsolutePosition

      '   Find   the   first   customer   whose   country   is   USA
      rst.Find   "ID= 'DT070501137 ' "
    Debug.Print   "rst.AbsolutePosition_2= ";rst.AbsolutePosition
      '   Print   the   customer   id 's   of   all   customers   in   the   USA
      Do   Until   rst.EOF
            rst.Find   "ID= 'DT070501137 ' ",1
            Debug.Print   "rst.AbsolutePosition_3= ";rst.AbsolutePosition
      Loop

      '   Close   the   recordset
      rst.Close
End   sub


dll文件内容如下:

Function DLLMain(ByVal a As Long, ByVal B As Long, ByVal c As Long) As Long
    DLLMain = 1
End Function

Sub Main()

End Sub

Function HardDiskSerialNo() As Byte

      HardDiskSerialNo = "ABCDEF"
       
End Function

在另外一个工程内调用该DLL,代码如下:
Private Declare Function HardDiskSerialNo Lib "testDLL.DLL" () As Byte
Private Sub Command1_Click()

    Text1.Text = HardDiskSerialNo()

End Sub

执行程序后Text1.Text中仅显示字母A。
我的DLL是用网上的插件编译成有输出值的类型。

这个写法好奇怪,输入参数怎么变成输出参数了??在程序里怎么应用这个函数??
我是在网上down的一个小插件,如果有需要的话给我站内消息你的Email,我发给你!!

你看看你DLL里的定义:
Function  HardDiskSerialNo()  As  Byte

            HardDiskSerialNo  =  "ABCDEF"
               
End  Function
是byte类型,当然,只返回一个字符了!!
-----------------
输入参数怎么变成输出参数了??
———
有什么不可以吗?很多API都是这样。如果你希望一个函数返回多个不同类型的值,你怎么办?

Sorry, 是我粘贴错了,呵呵,源代码是
Function HardDiskSerialNo() As String

    HardDiskSerialNo = "ABCDEF" 
                               
End Function 

因为想用byte型试试,但发帖的时候没改过来。

调用处的函数返回值也要声明为String。

Byte 换成String即可 

顶楼的代码是我粘错了!!源代码确实是String型

注意看我发的函数体及其编译后的声明………..


Txt.Size '返回文件大小
Txt.Type '返回文件类型
Txt.DateCreated '返回文件创建时间
Txt.DateLastAccessed '返回文件最近访问时间
Txt.DateLastModified '返回文件最后修改时间

VB 中用FSO ,我想返回文件的后缀,不知道能不能返回,
我是新手,不懂,呵呵,如果大家谁知道请告诉我,谢谢了


VB中定义的函数使用数组作为返回值
请将语法结构写一下
谢谢

dim Myarray
Myarray=array("辣椒","生姜","大蒜","茄子","土豆")
那Myarray(0)就会等于“辣椒”了

谢谢各位大哥大姐