SolidWorks机械工程师网——最大的SolidWorks学习平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

好品数字
好品数字
查看: 1174|回复: 6
打印 上一主题 下一主题

求问:vba获取txt文件内容的问题

  [复制链接]

39

主题

373

帖子

3093

金币

传奇

Rank: 8Rank: 8

积分
7808

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

跳转到指定楼层
楼主
 楼主| 发表于 2022-4-11 09:30:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
30金币
如题
以下代码是别处获得的,用vba获取txt文件内的内容,  
想修改的是 aa= .ReadText,这句是把txt的内容全部放到aa内,aa是字符串。
如果是按行获取要怎么弄,就是txt内容按一行一行放到一个一个字符串内,然后应该获取的是一个数组!
我想到的修改是这样:aa= Split(.ReadText, Chr(10)),aa是数组了,但每一项后面都多了一个空格,分裂那里用“空格”+Chr(10)又识别不了了,只能后面再去除数组里的空格。
这样并不理想,求高手解答一下用其他方法的!

With CreateObject("ADODB.Stream")
  .Type = 2
  .Mode = 3
  .Open
  .LoadFromFile txt文件路径
  .Charset = "UTF-8"
  .Position = 2
  aa= .ReadText
  .Close
End With


最佳答案

查看完整内容

方法一: 假如有三行,可以这样写(如果后面还有,还可以继续Readline) 其中,TxtFileFullPathName就是TXT的全路径。 方法二: 继续沿用你之前的办法,就是分割的字符更改一下,这样——
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享教程|习题|模型|技巧 点赞点赞 拍砖拍砖
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

37

主题

990

帖子

1万

金币

版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
19768

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

沙发
发表于 2022-4-11 09:30:44 | 只看该作者
方法一:
假如有三行,可以这样写(如果后面还有,还可以继续Readline)
  1. Set FSO = CreateObject("Scripting.FileSystemObject")
  2. Set swTxt = FSO.OpenTextFile(TxtFileFullPathName, 1)
  3. aa = swTxt.Readline
  4. bb = swTxt.Readline
  5. cc = swTxt.Readline
复制代码

其中,TxtFileFullPathName就是TXT的全路径。

方法二:
继续沿用你之前的办法,就是分割的字符更改一下,这样——
  1. aa= Split(.ReadText, Chr(13)&Chr(10))
复制代码

SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

4

主题

62

帖子

408

金币

堂主

Rank: 4

积分
681
QQ
板凳
发表于 2022-4-11 12:00:35 | 只看该作者
顶一下,坐等高手!
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

373

帖子

3093

金币

传奇

Rank: 8Rank: 8

积分
7808

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

地板
 楼主| 发表于 2022-4-13 09:08:13 | 只看该作者
Allate 发表于 2022-4-12 21:08
方法一:
假如有三行,可以这样写(如果后面还有,还可以继续Readline)

方法二吧,原来回车和换行不是同一个意思,Chr(13)和Chr(10),查了资料才知道。
另外,方法一可以这样的:

Set FSO = CreateObject("Scripting.FileSystemObject")
Set swtxt = FSO.OpenTextFile(ffff, 1, True)
Do While Not swtxt.atendofstream
ReDim Preserve xxxx(xint)
xxxx(xint) = swtxt.ReadLine
xint = xint + 1
Loop

还有另一种方法:
,
nnnn = FreeFile()
Open ffff For Input As nnnn
While Not EOF(nnnn)
    ReDim Preserve xxxx(xint)
    Line Input #nnnn, xxxx(xint)
    xint = xint + 1
Wend
,
只是上述这两种,如果txt文件内容有中文的话,就会变成乱码,,,




SolidWorks机械工程师网
回复

使用道具 举报

1

主题

786

帖子

441

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2175

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

5#
发表于 2022-5-29 17:56:10 | 只看该作者

   经典案例图书
感谢楼主分享,很不错!
SolidWorks机械工程师网
回复

使用道具 举报

2

主题

499

帖子

55

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2093

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

6#
发表于 2022-8-25 16:36:21 | 只看该作者
好东西,努力学习学习!
SolidWorks机械工程师网
回复

使用道具 举报

0

主题

270

帖子

24

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1516

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

7#
发表于 2022-10-12 19:53:33 | 只看该作者

   经典案例图书
感谢楼主分享,很不错!
SolidWorks机械工程师网
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-5-11 13:21 , Processed in 0.207286 second(s), 34 queries .

SolidWorks机械工程师网 ( 鲁ICP备14025122号-2 ) 鲁公网安备 37028502190335号

声明:本网言论纯属发表者个人意见,与本网立场无关。
如涉版权,可发邮件: admin@swbbsc.com

快速回复 返回顶部 返回列表