欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 请帮忙

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4880人关注过本帖树形打印复制链接

主题:请帮忙

帅哥哟,离线,有人找我吗?
liboyi
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:68 积分:436 威望:0 精华:0 注册:2011/1/16 22:06:51
请帮忙  发帖心情 Post By:2011/8/21 9:33:18 [只看该作者]

大家帮忙看看下面的宏为什么得不到想要的结果.

 

 

Sub TTest()
 
 application.ClearMsg
 
Set fs = CreateObject("Scripting.FileSystemObject")
if fs.FileExists("D:\Weisoft Stock\setdata\1105.txt")= false then
    Set a = fs.CreateTextFile("D:\Weisoft Stock\setdata\1105.txt", True)
 else
  Set a = fs.OpenTextFile("D:\Weisoft Stock\setdata\1105.txt" ,1,0) 
end if
 
   'Do While a.AtEndOfStream <> True
     qq =a.readline
    application.MsgOut qq
    s =split(qq)
     for i=0 to ubound(s)
    
      application.MsgOut  s(i)
    
      next
   
'Loop
 
 a.Close

End Sub

 

本意是想读出行文本文件的一行,后分开.上面的执行了.分开了.按理比如分开后第一个是100,第4个是188.可我就是读不出.

1105.txt 文件如下:

   100          21              21               188             -79             3

 

下面是运行结果:


100
21
21
188
-79
3

 

请朋友帮忙,怎么得到上面的值.就是比如a =100,b=21,c=21,d=188,e=3.

 

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
26327756l
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:676 积分:2548 威望:0 精华:3 注册:2011/4/13 16:18:50
  发帖心情 Post By:2011/8/22 13:29:12 [只看该作者]

错误找到了

 s =split(qq)
这个函数使用,应该是  s =split(qq," ")

同时1105.txt  的文件修改为  100 21 21 188 -79 3 (也就是属于数之间加一个空格,对应split函数的第二个参数,必须对应。)

还有这样转化后s数组变量的类型应该是字符窜,那么使用的时候要用转换函数(比如CINT(s(1)),这样使用才是数值型)。有问题在发贴。


 回到顶部
帅哥哟,离线,有人找我吗?
liboyi
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:68 积分:436 威望:0 精华:0 注册:2011/1/16 22:06:51
  发帖心情 Post By:2011/8/22 17:24:13 [只看该作者]

多谢楼上.

这问题我不用split,解决了.看了你的回复,我再来做.一样还是解决不了split的问题.

 

现在还不用考虑转换的事.怎么才能把1105.txt文件(好多行)读出,第一个给a,第二个给b,.......

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
26327756l
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:676 积分:2548 威望:0 精华:3 注册:2011/4/13 16:18:50
  发帖心情 Post By:2011/8/22 17:33:22 [只看该作者]

你如果要用循环,连续的将每一行读出,赋值给另一个变量,那最好是用数组,便于循环赋值。a,b……不好放在循环里。


 回到顶部
帅哥哟,离线,有人找我吗?
micro_mok
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:50 积分:295 威望:0 精华:0 注册:2011/7/28 11:36:50
  发帖心情 Post By:2011/8/22 17:49:48 [只看该作者]

我也是建议用数组,把有需要的读进缓存中,在txt尽量用“,”隔开数据,不要用空格(这样有需要的话转二进制也方便,给matlab读取也方便)

 

如果是要即时运算的,在缓存中的读取,比文档上的读取快得多(如果时间比较重要的话,更加不要用excel来读取和交换数据,excel的数据读取是最慢的;但行列定位容易,易于程序编写)。


 回到顶部