答的好+100 vb打开一个文本文件 并且按照需要 做逐行扫描、替换后另存

请问怎么做,请把步骤,以及用那些控件,特别的语句,简单描述,代码我可以自己查。若回答的很好+100谢谢亲们的回答,其实我想说的不是打开某个确定知道文件名的文件,而是从某个... 请问怎么做,请把步骤,以及用那些控件,特别的语句,简单描述,代码我可以自己查。若回答的很好+100
谢谢亲们的回答,其实我想说的不是打开某个确定知道文件名的文件,而是从某个磁盘中选择某个文件来打开
展开
 我来答
财华有约
2009-05-26 · 带上你的才华,一起探索生财之道。
财华有约
采纳数:101 获赞数:657

向TA提问 私信TA
展开全部
VB中文本文件的操作

此种方式是以行为单位进行读取的基本单位,主要应用的方法和函数有Open,Close,Line Input,FreeFile,EOF等。下面先简述其功能然后结合代码示例进行说明。

Open:顾名思义,它的作用是打开文件,换而言之打开某个文件就是获得某个的控制权,一般情况下当文件处于打开状态时只有打开者才能对它进行操作。打开文件时要指定一个整数作为文件号,以后的操作都是针对这个代号进行的,而不是针对文件名。文件号也叫句柄,在程序中一个文件号只能指向一个文件,不能出现两个文件同时具有相同句柄的情况。

Close:关闭文件,即释放文件的控制权。

Line Input:以行为单位取得文件内容,以行为单位是指从当前位置开始到下一个换行符为止的内容。换行符是Chr(13) & Chr(10)两个字节组成,VB中已定义了常量vbCrLf,可直接使用。要注意的是Line Input读取一行时会把行尾的换行符去掉,因此我们在读取每行内容时要记得补上换行符才能保持得到的内容与文件一致。

FreeFile:得到空闲的文件号,用这个函数取得文件号可以避免文件号的冲突。

例如:

Dim strFileName As String '文件名

Dim lngHandle As Long '文件句柄

Dim strAll As String '所读取的文本文件的所有内容

Dim strLine As String '在循环中存放每行的内容

strFileName = "c:\.txt"

'获得文件的句柄

lngHandle = FreeFile()

'For后面的参数表示以何种方式打开文件,Input是读取,Output是覆盖写入,Append是追加写入

Open strFileName For Input As lngHandle

'循环直到文件尾

Do While Not EOF(lngHandle)

'每次读取一行存放在strLine变量中

Line Input #lngHandle, strLine

'每次读取都把所读到的内容连接到strAll变量,由于Line Input去掉了换行符,所以这里补上

strAll = strAll & strLine & vbCrLf

Loop

'显示得到的全部分内容

MsgBox strAll, vbInformation

对文本文件的写入相对简单些,有三个步骤:打开文件,写入文本,关闭文件。

代码示例:

Dim strFileName As String '文件名

Dim lngHandle As Long '句柄

Dim strWrite As String '要写入的文本内容

strFileName = "c:\w.txt"

lngHandle = FreeFile() '取得句柄

'准备要写入的内容

strWrite = "落日楼头,断鸿声里,江南游子。把吴钩看了,栏干拍遍,无人会、登临意。"

Open strFileName For Output As lngHandle '打开文件

Print #lngHandle, strWrite '写入文本

Close lngHandle '关闭文件

MsgBox "写入完成。", vbInformation
玫瑰为你盛开
2009-05-31 · TA获得超过8518个赞
知道大有可为答主
回答量:820
采纳率:0%
帮助的人:0
展开全部
在窗体上添加四个控件(都在控件栏里有的),Drive1,Dir1,File1,Command1,使用它们的默认名称,单击一下Command1即可执行:

Private Sub Form_Activate()
File1.Pattern = "*.txt" '只列出txt文件,如果要列出所有文件,改成*.*
End Sub

Private Sub Dir1_Change()
File1.Path = Dir1.Path '选择文件路径时产生的连动
End Sub

Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive '选择文件路径时产生的连动
End Sub

Private Sub Command1_Click()
fpath = Dir1.Path & IIf(Right(Dir1.Path, 1) = "\", "", "\") '文件路径
sfname = fpath & File1.FileName '带全路径的源文件名称
tfname = fpath & "target.txt" '带全路径的目标文件名称

If Dir(sfname) = "" Then MsgBox "请先选择txt文件!": Exit Sub '如未选择文件,为了避免出错,下边的文件操作代码将禁止执行

Open sfname For Input As #1 'sfname为源文件
Open tfname For Output As #2 'target.txt是你另存的文件
Do While Not EOF(1)
Line Input #1, newstr '逐行读出
newstr = "123" & newstr '本例中,是在读出的每一行内容之前均加上“123”,然后重新写到另一个文件中去
Print #2, newstr '将处理过的读出内容逐行写入
Loop
Close #1
Close #2
MsgBox "完成!已将文件" & File1.FileName & "中的内容做了替换,另存在文件target.txt中!"
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Zaxife
2009-05-31 · TA获得超过1254个赞
知道小有建树答主
回答量:1138
采纳率:0%
帮助的人:423万
展开全部
1 用OPEN打开文本文件;
2 用Split按'回车符'进行每行文本分割到一维数组里面;
3 用Replace替换相应的数组文本;
4 用循环合并数组;
5 保存文本文件。

要注意的是,文本文件行数太多时(>10000行),在后期进行合并时,会消耗很长时间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
52xenos
2009-05-26 · TA获得超过3032个赞
知道小有建树答主
回答量:1154
采纳率:0%
帮助的人:0
展开全部
1, 定义一个字符串,保存文件路径,例如strFile;
再定义一个字符串,保存每行读取的值,例如strRead

2, 打开文本文件,逐行读取到strRead变量
Open strFile for Input as #1
Do While Not EOF(1)
Line Input #1, strRead '读取一行 到变量
'这里添加自己的替换语句啦
Loop
Close #1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1c007c8cd
2009-05-26 · TA获得超过613个赞
知道小有建树答主
回答量:2292
采纳率:100%
帮助的人:1230万
展开全部
OPEN 涵数打开!

=,= 什么控件都不用!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式