vb读取txt文件分解讲解Word文档格式.docx

上传人:b****6 文档编号:16227229 上传时间:2022-11-21 格式:DOCX 页数:15 大小:21.15KB
下载 相关 举报
vb读取txt文件分解讲解Word文档格式.docx_第1页
第1页 / 共15页
vb读取txt文件分解讲解Word文档格式.docx_第2页
第2页 / 共15页
vb读取txt文件分解讲解Word文档格式.docx_第3页
第3页 / 共15页
vb读取txt文件分解讲解Word文档格式.docx_第4页
第4页 / 共15页
vb读取txt文件分解讲解Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

vb读取txt文件分解讲解Word文档格式.docx

《vb读取txt文件分解讲解Word文档格式.docx》由会员分享,可在线阅读,更多相关《vb读取txt文件分解讲解Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

vb读取txt文件分解讲解Word文档格式.docx

再加上一个TextStream读取文件第一行就好了啊。

3.VB通过FileSystemObject,可以读取文本文件(.txt)。

对于.bat文件,VB可否直接读取?

bat也属于文本类文件

可以读取

不用FSO也行:

把文本文件内容读取TextBox:

DimTempFileAsLong

DimLoadBytes()AsByte

TempFile=FreeFile

Open文件名ForBinaryAs#TempFile

RedimLoadBytes(1ToLof(TempFile))AsByte

Get#TempFile,,LoadBytes

CloseTempFile

Text1.Text=StrConv(LoadBytes,vbUniCode)

把TextBox内容写入文本文件:

DimSaveBytes()AsByte

SaveBytes=StrConv(Text1.Text,vbFromUniCode)

Put#TempFile,,SaveBytes

4.

打开文本文件

openapp.path&

"

/你的文本文件名.txt"

foroutputas#1

Message.Name=text1.text

Message.Phone=text2.text

.......................

message.PostCode=text5.text

Put#1,i,Message 

\'

(此处i=1,如要多次写入,可用循环设置i的值)

close#1

写入的同时即已保存

查询的话就取出文本里的内容,用instr()函数就可实现了

5.

查找vbCrLf、vbLf换行标记

6.怎样读取一个文本文件的全部内容

dimlenfileasinteger

dimfilenumasinteger

filenum=freefile()

open"

file.dat"

forinputasfilenum

lenfile=lof(#filenum)

strfile=input(lenfile,#filenum)\'

将所有数据放入变量strfile中

closefilenum

PrivateSubForm_Load()

ConstForReading=1,ForWriting=2

Dimfso,f

DimSkipLineInFileAsString

Setfso=CreateObject("

Scripting.FileSystemObject"

Setf=fso.OpenTextFile("

c:

\\testfile.txt"

ForWriting,True)

f.Write"

Helloworld!

&

vbCrLf&

VBScriptisfun!

ForReading)

SkipLineInFile=f.readall

Debug.PrintSkipLineInFile

EndSub

7.把文本文件内容读取TextBox:

8.把TextBox内容写入文本文件:

9.已知文本文件,要从中搜索一段特定的字符串信息。

如搜索[MAGIC_DATABASES],该怎么做?

dimstrasstring

opencommondialog1.filenameforinput#1

input#1,str

dimwhereasinteger

where=instr(str,"

magic_databases"

10.

LineInput#语句示例

本示例使用LineInput#语句从顺序文件中读入一行数据,并将该行数据赋予一个变量。

本示例假设TESTFILE文件内含数行文本数据。

DimTextLine

Open"

TESTFILE"

ForInputAs#1 

打开文件。

DoWhileNotEOF

(1) 

循环至文件尾。

LineInput#1,TextLine 

读入一行数据并将其赋予某变量。

Debug.PrintTextLine 

在立即窗口中显示数据。

Loop

Close#1 

关闭文件。

11.如何操作“文本文件”

fso(Filesystemobject)对象集中的文件集合里有readline方法。

DimofAsObject

DimfsasObject

dimTextLineasstring

Setfs=createobject("

scripting.Filesystemobject"

setof=fs.OpenTextFile(app,path+"

\\myfile.aaa"

//myfile.aaa是一个文本文件

textling=of.readline

//如果你要读取第14行,可以用一个循环,跳过前面的13行,如下

dimlopasinteger

forlop=0to12

of.skip

next

//然后再读取

12.

搜索了一下,大家主要用两种方法对文本文件加密。

1.对文本文件的ASC码加减

2.用XOR函数

我发现都有问题举例

1.代码

PublicFunctionnnnn(ByValsAsString)AsString\'

解密

OnErrorResumeNext

DimssAsString,iAsByte,lensAsByte

lens=Len(s)

Fori=1Tolens

ss=ss&

Chr(Asc(Mid(s,i,1))-lens-i)

Next

nnnn=ss

EndFunction

PublicFunctionmmmm(ByValsAsString)AsString 

加密

Chr(Asc(Mid(s,i,1))+lens+1)

mmmm=ss

当文件中有“!

~”时出错

XOR加密

DimIaslong

ForI=1ToUBound(LoadBytes)

LoadBytes(I)=LoadBytes(I)Xor&

HFF

NextI

13.怎么判断一个文本文件是否打开?

判断如果没打开就删除该文本文件!

要用到FileSystemObject对象的FileExists和deletefile方法

ifdir(myfile)="

thenexitsub

FileNumber=FreeFile 

取得未使用的文件号。

OnErrorGoToErrorHandler 

打开错误处理程序。

OpenMyFileForOutputAs#FileNumber 

打开输出文件。

Kill"

试图删除已打开的文件。

ExitSub 

退出程序,以避免进入错误处理程序。

ErrorHandler:

错误处理程序。

SelectCaseErr.Number 

检查错误代号。

Case55 

发生“文件已打开”的错误。

Close#FileNumber 

关闭已打开的文件。

CaseElse

处理其他错误状态...

EndSelect

Resume 

将执行返回到发生错误的语句。

14.打开一个文本文件怎样最快?

DimfnAsLong,tsAsString

fn=FreeFile

\\test.txt"

ForBinaryAs#fn

ts=StrConv(InputB(LOF(fn),#fn),vbUnicode)

Text1=ts

Close#fn

ts=Input(LOF(fn),#fn)

15.怎么判断文本文件读取到了最后一行?

用fsoTextStream.AtEndOfStream可以判断

16.如何在文本文件中插入一行字串?

用OpenForAppend的方法只能加在最后面

就用两个文件合并好了

Shell"

command/ccopyaa.txt+bb.txtcc.txt"

vbHide

但我觉的不是太好,你自己看看对你有没有帮助吧。

17.

TESTFILE.txt"

ForOutputAs#1 

Write#1,"

HelloWorld"

 

写入以逗号隔开的数据。

Write#1, 

写入空白行。

关闭文件

请问怎样在原先TESTFILE.txt增加HelloWorld(即不删除原先的内容)

ForAppendAs#1

Close#1

18.如何实现对文本文件任意一行的读写?

利用VB的FileSystemObjects(FSO)对象模型

要想对任一行读写,不用将前面内容顺序读出,但要用FSO对象的方法移动文件指针,具体方法如下:

1.在VB编辑器中引用“MicrosoftScriptingRunTime"

2.DimfsoAsNewFileSystemObject 

定义FSO对象

DimtsAsTextStream 

定义文本流

打开文件

Setts=fso.OpenTextFile("

ForWriting)

之后即可用ts的方法进行操作,可参见MSDN,以下简要说明:

读数据有:

Read、ReadLine、ReadAll

写数据有:

Write、WirteBlankLine、WirteLine

移动文件指针有:

Skip、SkipLine

操作完毕要关闭文件流

ts.close

19.在文件结尾写上新的行:

DimtFileNumberAsInteger

DimtWriteStrAsString\'

要写的字符串。

tFileNumber=FreeFile

tWriteStr=你需要的内容

OpenpFileNameForAppendAs#tFileNumber\'

Append为在文件结尾顺序写文件夹。

或者以Output模式打开,使用Seek(tFileNumberm,LOF(tFileNumber))也可以定义指针到文件结尾。

Print#tFileNumber,tWriteStr\'

写到文件里。

Close#tFileNumber

如果文件上一行没有换行,将导致你写的第一行和原来文件最后一行接在一起。

解决办法是:

tWriteStr=Chr(13)&

Chr(10)&

tWriteStr

在写第一行前加这一句,将导致在这行前加换行符号。

  另外,假如你有100行要写的内容,那么你往文件写100次不如把100行合并成一个字符串一起写的好。

写100行的时间比合并100行后写一次的时间要慢。

  同时,不要多次OpenClose地写文件。

Open和Close都要重新分配缓冲区,导致程序速度下降。

尽量在一次Open后,全部写完再Close,这样可以提高效率。

  但是需要特别注意!

在Close前,如果程序因某种原因非法关闭,那么可能要丢失数据。

因为只有在Close后才将缓冲区里的信息真正全部保存。

而没有Close的文件,可能有部分内容在内存里没有存盘,这是很危险的。

如果你确保在短时间内进行单一的操作,那么就在Close前写过程。

如果需要长时间的复杂操作,就要多次OpenClose了。

在OpenClose之间进行存取操作将获得最快的效率,而分多次OpenClose获得最佳的安全。

此外还有一个诀窍:

如果你想在读一个文件同时写一个文件,那只要把它分别用两个方式打开。

Open"

1.txt"

ForInputAs#1

ForOutputAs#2

Print#2,"

小仙妹"

写1.txt

Seek#1,1

LineInput#1,Ld 

读1.txt

Seek#1,1 

如果去掉这句,你看看读第而次的时候会怎样?

(肯定出错了!

LineInput#1,Ld

Close#2

Close#1

典型的读文件:

DimtFileNumberAsInteger\'

文件号

DimtLoadStrAsString\'

读文件行的变量

tFileNumber=FreeFile 

FreeFile是取当前闲置的文件号的函数。

实现自动分配一个文件号码。

这样使这段程序几乎可以兼容在程序所有的部分。

OpenpFileNameForInputAs#tFileNumber\'

Input方式为顺序读文件。

LineInput#tFileNumber,tLoadStr\'

LineInput语句为整行读取,否则如果只用Input则遇到逗号也算一个段落。

如果你想读第12行,在不知道12行的位置的前提下,那要读12次的。

读文件指定行:

读文件最大的问题就是判断文件的结束。

如果超过文件结束,将产生错误。

使用EOF函数可以判断“文件指针”是否到达文件结束位置。

方法一(传统方法):

DimtLoadStrAsString

DimtEndAsLong\'

你要读的行数。

DimtAddAsLong\'

记数

tEnd=12\'

假设你要读12行

OpenpFileNameForInputAs#tFileNumber

DoUntilEOF(tFileNumber)OrtAdd=tEnd\'

EOF函数是判断是否已经到了结尾或到了你想找的行。

LineInput#tFileNumber,tLoadStr

tAdd=tAdd+1\'

记数累加,读一行加一。

Loop

方法二(比较实用的):

FortAdd=1TotEnd

IfEOF(tFileNumber)ThenExitFor\'

到结尾则退出循环。

Next

以上都是我在编程当中总结出来的非常惨痛的教训,希望你不要步我后尘。

20.用FSO来读文本文件时怎样返回该文本文件的总行数?

Setopenfile=openfso.OpenTextFile(CommonDialog1.FileName)

StaticiAsInteger

i=0

DoWhileNotopenfile.AtEndOfLine

openfile.ReadLine

i=i+1

Loop

MsgBox"

共"

i&

行"

vbOKOnly,"

hello"

21.treeview能够生成两层以上的节点吗?

DimNodXAsNode

SetNodX=TreeView1.Nodes.Add(,,"

R"

"

ROOT"

SetNodX=TreeView1.Nodes.Add("

tvwChild,"

key1"

CHILD"

key2"

CHILD_CHILD"

NodX.EnsureVisible

22.怎样获得一个文件夹里的文件数,并且分别得到里面的文件名?

dimsTempasstring

dimsFileName(100)asstring 

记录文件名

dimintTotalasinteger 

文件总数

intTotal=0

sTemp=Dir$(Path&

\\*.*"

dowhilesTemp<

>

sFileName(intTotal)=sTemp

intTotal=intTotal+1

sTemp=Dir$

loop

23.取文件夹的文件名列表,并按修改时间排序?

添加[工程]--[引用]“MicrosoftScriptingRuntime”

OptionExplicit

PrivateTypetypFlieDate

NameAsString

CreatedDateAsDate

AccessedDateAsDate

ModifiedDateAsDate

EndType

PrivatemyFiles()AstypFlieDate 

包含文件的数组

PrivateSubCommand1_Click()

DimnAsInteger

n=GetFolderFiles("

d:

\\"

1)

PrivateFunctionGetFolderFiles(PathAsString,OrderByAsInteger)AsInteger

path文件夹路径

orderby排序依据 

1:

按创建时间 

2:

按访问时间 

3:

按修改时间 

4:

按名称

返回文件夹中文件的个数

如果要计算子文件夹可以通过fldr.SubFolders访问,方法类似

DimtmpFileAstypFlieDate

DimnAsInteger,iAsInteger,jAsInteger

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1