CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

VB函数中,如何返回一个数组????? ????

楼主kao2005()2005-08-02 13:29:46 在 VB / 基础类 提问

不妨给个例子....  
  谢谢! 问题点数:20、回复次数:14Top

1 楼hot1kang1(网站制作,系统开发,记得-http://3q2008.Com)回复于 2005-08-02 13:38:16 得分 0

返回用户自定义类型的   函数就行Top

2 楼IEQQ(从小事做起)回复于 2005-08-02 13:40:18 得分 0

 
   
   
  Public   Function   ReturnArray(ByRef   myarray()   As   Integer,   ByVal   s   As   String)   As   Boolean  
   
                '   把想要修改的数组传入   myarray(),  
                '   因为是引用调用,   所以对   myarray(),   的修改会保留下来.  
                '   而对   byval   s   的修改不会保留下来.  
                 
                '   你应该了解一下   byref   引用调用   和   byval   传值调用   的区别.  
                '学过C/C++语言,这个应该比较好理解.  
           
  End   Function  
   
   
  Top

3 楼WallesCai(女人之美,在于蠢得无怨无悔,男人之美,在于撒谎撒得白日见鬼)回复于 2005-08-02 13:43:35 得分 0

一:使用全局数组,避免了参数传递,可以提高执行速度  
  二:使用指针,将数组的首地址传入函数,在函数中寻址。(不要以为我在说C,VB也可以了样作的,只比C稍微麻烦一点点而已,需要用到一个VB的隐藏函数来获得地址)Top

4 楼kao2005()回复于 2005-08-02 13:45:47 得分 0

我的意思是这样子的.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
  比如,以下这个例子....  
  str="abcd"  
  function   Exp(str   as   string)  
  ...  
  ..  
  .  
  end  
   
  我想通过这个函数返回一个以下的数组...  
  exp(0)=a  
  exp(1)=b  
  exp(2)=c  
  exp(3)=d  
   
   
  Top

5 楼MagicianLiu(魔术师·刘)回复于 2005-08-02 14:06:18 得分 0

Function   ab(str   As   String)   As   String()  
          Dim   i   As   Integer  
          Dim   a  
          a   =   Split(str,   ",")  
          ab   =   a  
           
  End   Function  
   
  Private   Sub   Command1_Click()  
          Dim   b  
          b   =   ab("1,2,3")  
          MsgBox   b(0)   &   vbCrLf   &   b(1)   &   vbCrLf   &   b(2)  
  End   Sub  
  Top

6 楼crycoming(瞎编)回复于 2005-08-02 14:08:24 得分 0

Function   Exp(str   As   String)   As   String()  
        Dim   a()   As   String  
        Dim   i   As   Long  
        ReDim   a(0   To   Len(str)   -   1)   As   String  
         
        For   i   =   0   To   Len(str)   -   1  
                a(i)   =   Mid$(str,   i   +   1,   i)  
        Next  
        Exp   =   a  
  End  
  Top

7 楼kmlxk(xiaoKKKK)回复于 2005-08-02 14:09:23 得分 0

IEQQ(从小事做起)   说得没错吧@_@  
   
  你就照着做,没问题Top

8 楼MagicianLiu(魔术师·刘)回复于 2005-08-02 14:09:56 得分 0

这个正规点  
  Function   getAr(str   As   String)   As   String()  
          getAr   =   Split(str,   ",")  
  End   Function  
   
  Private   Sub   Command1_Click()  
          Dim   b  
          b   =   getAr("a,b,c,d")  
          MsgBox   b(0)   &   vbCrLf   &   b(1)   &   vbCrLf   &   b(2)   &   vbCrLf   &   b(3)  
  End   SubTop

9 楼kmzs(.:RNPA:.山水岿濛)回复于 2005-08-02 14:41:07 得分 0

ByRef是常用的解决方法Top

10 楼wenhongL(三脚猫)回复于 2005-08-02 15:11:27 得分 0

Public   Type   cc  
      c1   As   Integer  
      c2   As   Integer  
  End   Type  
   
  Public   Function   cz(i   As   Integer)   As   cc  
  If   i   =   0   Then  
      cz.c1   =   1  
      cz.c2   =   2  
  Else  
      cz.c1   =   2  
      cz.c2   =   3  
  End   If  
  End   Function  
  Top

11 楼33881163(吃草的老虎)回复于 2005-08-16 15:04:42 得分 0

Public   Function   ds()  
          ds   =   Array(1,2,3,4,5)  
  End   Function  
   
    结果如何呢?我们调用这个函数,无错的执行了;用“UBound”和“LBound”检测函数返回值,正确;用“For   Each”检测函数返回值,正确!  
   
  我对大家的写法很疑惑啊,直接返回数组不久可以了?Top

12 楼conrad_wan(pineapple)回复于 2005-08-16 15:34:39 得分 0

建议你返回Collection对象,简单易用的说^_^Top

13 楼33881163(吃草的老虎)回复于 2005-08-16 16:08:17 得分 0

函数可以直接返回一个数组啊!为什么大家还这么麻烦地用其他方法实现啊?  
   
  Public   Function   ds()  
          ds   =   Array(1,2,3,4,5)  
  End   Function  
   
    调用这个函数,正确地返回了一个数组,为什么大家用其他麻烦的方法啊?奇怪奇怪!  
  Top

14 楼optop(爱琴海)回复于 2005-08-16 18:29:50 得分 0

Private   Sub   Command1_Click()  
  Dim   count   As   Integer  
  Dim   str   As   String  
  Dim   ExpStr()   As   String  
  Dim   i   As   Integer  
  str   =   "abcd"  
  count   =   0  
  Do  
  ReDim   Preserve   ExpStr(count)'''''>>>>>>>>>动态数据  
  ExpStr(count)   =   Left(str,   1)  
   
  str   =   Right(str,   Len(str)   -   1)  
  count   =   count   +   1  
  Loop   Until   Len(str)   =   0  
  For   i   =   0   To   count   -   1  
      Debug.Print   ExpStr(i)  
  Next   i  
  End   Sub  
  Top

相关问题

  • 如何在VB的函数中返回一个一维数组是其在函数外能返回到呢?
  • 函数怎样返回一个数组?
  • pb6.5中使函数返回数组
  • 函数如何返回多维数组
  • 函数如何返回数组?
  • 请问函数如何返回数组?
  • 怎样在函数中返回数组?
  • 如何让函数返回数组?
  • 函数如何返回数组
  • 如何在vb中设置返回值为自定义类型数组的函数(250分)

关键词

  • 函数
  • 修改
  • exp
  • vb
  • 数组
  • expstr
  • 返回
  • 调用
  • getar
  • vbcrlf

得分解答快速导航

  • 帖主:kao2005

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo