标题:VB读取txt中的文章段落 显示在 text1里
只看楼主
tieguanyin
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2019-1-7
结帖率:0
已结贴  问题点数:20 回复次数:4 
VB读取txt中的文章段落 显示在 text1里
VB读取txt中的文章段落 显示在 text1里
提前已经准备好了文章 每篇文章都有数量不等的段落,特点就是每个段落之间都有1-2的空行,(如果只能1个空行才能实现也可以 我手动改txt倒也行)我需要 点击 按钮 就从文本中读取 随机3个段落 显示在 text1 和text2,text3里面注意 文本里可能有几百个段落 不一定的
搜索更多相关主题的帖子: 读取 txt 文章 显示 text1 
2019-01-07 13:35
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:10 
给你个思路。
1、把文章读取到内存A1,A1数组为vbcrlf
Public Sub Load_Txt(ByVal Txt_Filename, A1)
  Dim by As String
  Open Txt_Filename For Binary As #1
  by = Space(LOF(1))
  Get #2, , by
  A1 = Split(by, vbCrLf)
  DoEvents
  Close #1
End Sub
2、转换为不空段落数组A2
dim a2
index1=1
redim a2(1)
for i= 0 to ubound(a1)
 if a1(i)<>"" then
   a2(0)=index1'a2(0)记录不空段落总数,a2(1-index1)记录对应的index1个段落
   redim preserve a2(index1)   
   a2(index1)=index1
   index1=index1+1
 end if  
next
3、生成1-index之间的3个不同随机数
Randomize
for i=1 to 3
  rnd1=int(rnd(0)*index1+0.005)'产生1-index之间的随机数
  temp=a2(index1):a2(index1)=a2(rend1):a2(rnd1)=temp:将产生的随机数放到最后,为下次index-1个随机数不重复做准备
  text1(i)=a2(index1)'text1(1-3)为需要随机显示的3个不同段落  
  index=index-1
next
2019-01-07 14:41
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:10 
Public Sub Load_Txt(ByVal Txt_Filename, A1)
  Dim by As String
  Open Txt_Filename For Binary As #1
  by = Space(LOF(1))
  Get #2, , by
  A1 = Split(by, vbCrLf)
  DoEvents
  Close #1
End Sub

在这句  A1 = Split(by, vbCrLf) 之前,加几个处理命令
by = Replace(by, vbCrLf & vbCrLf, vbCrLf)       '把二个段落标记换成一个

懒的计算最多有几个空行,那就把这行命令到这里写上几遍,如写三遍,可以干掉最多连续8个空段。

去掉了空段后,直接就分解得数组,可以不再判断是否空段,然后取内容。





[此贴子已经被作者于2019-1-7 17:08编辑过]


授人于鱼,不如授人于渔
早已停用QQ了
2019-01-07 17:07
tieguanyin
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2019-1-7
得分:0 
回复 2楼 wds1
已经实现了 谢谢你
2019-01-07 21:05
tieguanyin
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2019-1-7
得分:0 
回复 3楼 风吹过b
已经搞定了谢谢你
2019-01-07 21:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492551-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.604177 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved