File io 如何使用Power Point VBA代码逐个读取文本文件中的行?

File io 如何使用Power Point VBA代码逐个读取文本文件中的行?,file-io,command-line,newline,fso,File Io,Command Line,Newline,Fso,此代码将从文本文件中读取一行: set file = CreateObject("Scripting.FileSystemObject").OpenTextFile("c:\number.txt", 1) text = file.ReadLine MsgBox text 如何让它从同一个文件中一行接一行地重复读取?我想,我应该在这里使用循环,对吗?我需要它在第一次迭代时从文件中读取第一行,在第二次迭代时读取第二行,在第三次迭代时读取第三行,依此类推,直到所有的行都被读取。我怎么做 重要补充:我

此代码将从文本文件中读取一行:

set file = CreateObject("Scripting.FileSystemObject").OpenTextFile("c:\number.txt", 1)
text = file.ReadLine
MsgBox text
如何让它从同一个文件中一行接一行地重复读取?我想,我应该在这里使用循环,对吗?我需要它在第一次迭代时从文件中读取第一行,在第二次迭代时读取第二行,在第三次迭代时读取第三行,依此类推,直到所有的行都被读取。我怎么做

重要补充:我需要的代码,以操作每一行一个-不是一次全部

使用
ReadAll()
方法:

text = file.ReadAll
(可能感兴趣:)

使用循环:

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, MyFile, FileName, TextLine

Set fso = CreateObject("Scripting.FileSystemObject")

FileName = "c:\testfile.txt"

Set MyFile = fso.OpenTextFile(FileName, ForReading)

'' Read from the file
Do While MyFile.AtEndOfStream <> True
    TextLine = MyFile.ReadLine

    '' Do stuff to TextLine

Loop
MyFile.Close
Const for reading=1,for write=2,for appending=8
Dim fso、MyFile、文件名、文本行
设置fso=CreateObject(“Scripting.FileSystemObject”)
FileName=“c:\testfile.txt”
设置MyFile=fso.OpenTextFile(文件名,用于读取)
“”已从文件中读取
当MyFile.AtEndOfStream为True时执行此操作
TextLine=MyFile.ReadLine
“”对文本行执行操作
环
我的文件。关闭

您可以向Windows脚本主机对象模型添加一个引用*,它将帮助您处理FileSystemObject对象,因为您可以说:

Dim fs As FileSystemObject
Dim f As TextStream
这将允许您使用intellisense查看各种属性,并使用对象浏览器浏览库


*在“代码”窗口中,选择“工具”、“引用”,并在所需库旁边的框中打勾。

如果出于某种原因希望使用内置VBA文件处理例程,则可以使用如下代码:

Sub ReadAFileLineByLine()
    Dim InStream As Integer
    InStream = FreeFile()
    Open "C:/tmp/fastsynchtoquesttry_quest.txt" For Input As InStream

    Dim CurrLine As String
    Do While True
        Line Input #InStream, CurrLine
        ' do stuff to CurrLine
        If EOF(InStream) Then Exit Do
    Loop

    Close #InStream
End Sub

我编写了一个VBA例程,它读取一个文本文件,并为文本中的每个句子插入一张新幻灯片

首先,在幻灯片#1中,添加一个调用名为“generate”的宏的按钮

源代码如下:

Const DEFAULT\u SLIDE=1'从中复制布局样式的幻灯片
常量边距=生成的文本框的50'边距
子生成()
Dim txtFile作为字符串的文本文件名
Dim fileNo作为整数的文件句柄
将缓冲区设置为字符串“临时字符串缓冲区”
Dim句子()作为字符串“保存句子的主数组”
Dim i,总计为整数
将myLayout设置为CustomLayout
像滑梯一样变暗
模糊的我的形状
将myWidth、myHeight设置为整数的幻灯片宽度和高度
txtFile=“text2sample.txt”
txtFile=ActivePresentation.Path&“\”&txtFile”文本文件应与此ppt位于同一目录中
如果Len(Dir$(txtFile))=0,则
MsgBox txtFile&“未找到文件。”
出口接头
如果结束
'初始化数组
重读句子(0)
'获取文件句柄号
fileNo=FreeFile()
打开txtFile作为#fileNo输入
i=0
不执行EOF时执行(文件号)
行输入#文件号,缓冲区'逐行读取并保存句子
重读保留句子(i+1)'再增加1个数组
句子(i)=LTrim(RTrim(缓冲区))
i=i+1
环
关闭#文件号
总计=i
“随机”用于随机颜色
使用ActivePresentation.PageSetup
myWidth=.SlideWidth-边距“获取宽度和高度”
myHeight=.SlideHeight-页边距
以
对于i=0到总计
设置myLayout=ActivePresentation.Slides(默认幻灯片)。自定义布局
'添加类似幻灯片的幻灯片#1
设置mySlide=ActivePresentation.Slides.AddSlide(默认幻灯片+1+i,myLayout)
'添加带边距的文本框
设置myShape=ActivePresentation.Slides(默认幻灯片+1+i).Shapes_
AddTextbox(msoTextOrientationHorizontal、MARGIN、MARGIN、myWidth、myHeight)
用我的形状
"加一句话,
.TextFrame.TextRange.Text=句子(i)
.TextFrame.TextRange.Font.Size=60
“255颜色太亮了。选择不太明亮的颜色(200)
.TextFrame.TextRange.Font.Color.RGB=RGB(Int(Rnd*200)、Int(Rnd*200)、Int(Rnd*200))
.TextFrame.TextRange.Font.Bold=msoTrue
.TextFrame.TextRange.Font.Shadow=msoTrue
'如果要更改形状的颜色
'.Fill.ForeColor.RGB=RGB(整数(Rnd*200)、整数(Rnd*200)、整数(Rnd*200))
'.Fill.BackColor.RGB=RGB(Int(Rnd*200)、Int(Rnd*200)、Int(Rnd*200))
’填充
以
'为幻灯片放映进度添加文本框(ex)1/100
设置myShape=ActivePresentation.Slides(默认幻灯片+1+i).Shapes_
AddTextbox(msoTextOrientationHorizontal、0、0、150、20)
用我的形状
.TextFrame.TextRange.Text=“(&i&“/”&total&“)
.TextFrame.TextRange.Font.Size=20
.TextFrame.TextRange.Font.Color.RGB=RGB(100100100)
以
下一个
MsgBox总计和“已添加幻灯片”,VBS信息
端接头
下载文件:

对不起,这对我来说太复杂了,我只是个傻瓜。不过,我相信VBA中应该有一些方法,比如realall功能。Mitch Wheat已经给了你答案,这是额外的评论,正如你在之前的帖子中提到的,你希望学习VBA。对象浏览器和intellisense对学习有很大帮助。谢谢你,Jon。我很惊讶-似乎你已经问了我的另一个问题,然后来到这里分享这段代码。(我从第一行猜到的,这是我自己创建的,在本页的Mitch Wheat的代码中没有。)感谢您在这里分享的代码。我仍然需要一些时间来学习,但我一定会做到。只是巧合,我想…我只是尽我所能说出潜艇的名字,但我很高兴其他人也这么认为!很高兴看到你在做powerpoint vba,当我这样做的时候总是很有趣…完美的答案