vb读取txt文件_第1页
vb读取txt文件_第2页
vb读取txt文件_第3页
vb读取txt文件_第4页
vb读取txt文件_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、vb 读取 txt 文件1. 怎么通过代码创建一个文本文件,并读取,更新内容 以上为随即方式打开的文本文件 dim gfilenum as integer gfilenum = FreeFileOpen " 文件路径及文件名 " For Random As gfilenum len=3' 以随即方式打开一文件如果文件不存在就新建用 get #gfilenum , 记录在文件中位置 , 要放取得的数据的变量 ' 读取操作 用 put #gfilenum , 记录在文件中位置 , 要放着要写入数据的变量 ' 写操作 close #filenum'

2、 关闭文件 以下为顺序方式打开的文件 dim gfilenum as integer gfilenum = FreeFileOpen " 文件路径及文件名 " For output As gfilenum ' 以写入方式打开文本 print #gfilenum, 要写入的文本 write #filenumber, 要写入的文本dim gfilenum as integer gfilenum = FreeFile Open " 文件路径及文件名 " For input As gfilenum ' 以读出方式打开文本 input #gfile

3、num , 用来放读取的内容的内存变量名 还可用 line input#,input() 等读取更详细的查 msdn2. VB 读取文本文件时,调用 TextStream 对象中使用 OpenTextFile 报错了。 如果是Set f = fs.OpenTextFile("E:tabletrace.txt", forreading, True, TristateUseDefault) 出现错误:Run-time error '5':Invalid procedure call or argument如果是Set f = fs.OpenTextFile(&q

4、uot;E:tabletrace.txt)" 则不会报错。用文件对象啊 FileSystemControl 操作就好了啊 再加上一个 TextStream 读取文件第一行就好了啊。3. VB通过FileSystemObject,可以读取文本文件(.txt)。对于.bat文件,VB可 否直接读取 ?bat 也属于文本类文件 可以读取不用FSO也行: 把文本文件内容读取 TextBox :Dim TempFile As LongDim LoadBytes() As ByteTempFile=FreeFileOpen 文件名 For Binary As #TempFileRedim Loa

5、dBytes(1 To Lof(TempFile) As ByteGet #TempFile,LoadBytesClose TempFileText1.Text=StrConv(LoadBytes,vbUniCode)把 TextBox 内容写入文本文件:Dim TempFile As LongDim SaveBytes() As ByteSaveBytes=StrConv(Text1.Text,vbFromUniCode)TempFile=FreeFileOpen 文件名 For Binary As #TempFilePut #TempFile,SaveBytesClose TempFile

6、4. 打开文本文件 open app.path &"/ 你的文本文件名 .txt" for output as #1Message.Name=text1.textMessage.Phone=text2.textmessage.PostCode=text5.textPut #1,i,Message '( 此处 i=1, 如要多次写入 , 可用循环设置 i 的值 ) close #1' 写入的同时即已保存 查询的话就取出文本里的内容 , 用 instr() 函数就可实现了5. 查找 vbCrLf 、vbLf 换行标记6. 怎样读取一个文本文件的全部内容d

7、im lenfile as integer dim filenum as integer filenum=freefile() open "file.dat" for input as filenum将所有数据放入变量 strfile 中lenfile=lof(#filenum) strfile=input(lenfile,#filenum)' close filenumPrivate Sub Form_Load()Const ForReading = 1, ForWriting = 2Dim fso, fDim SkipLineInFile As StringSe

8、t fso = CreateObject("Scripting.FileSystemObject")Set f = fso.OpenTextFile("c:testfile.txt", ForWriting, True)f.Write "Hello world!" & vbCrLf & "VB Script is fun!"Set f = fso.OpenTextFile("c:testfile.txt", ForReading)SkipLineInFile = f.readal

9、lDebug.Print SkipLineInFileEnd Sub7. 把文本文件内容读取 TextBox:Dim TempFile As LongDim LoadBytes() As ByteTempFile=FreeFileOpen 文件名 For Binary As #TempFileRedim LoadBytes(1 To Lof(TempFile) As ByteGet #TempFile,LoadBytesClose TempFileText1.Text=StrConv(LoadBytes,vbUniCode)8. 把 TextBox 内容写入文本文件:Dim TempFile

10、As LongDim SaveBytes() As ByteSaveBytes=StrConv(Text1.Text,vbFromUniCode)TempFile=FreeFileOpen 文件名 For Binary As #TempFilePut #TempFile,SaveBytesClose TempFile9. 已知文本文件,要从中搜索一段特定的字符串信息。如搜索MAGIC_DATABASES, 该怎么做 ?dim str as stringopen commondialog1.filename for input #1input #1, strdim where as in teg

11、er where = in str(str,"magic_databases") 10.Line In put #语句示例本示例使用Line In put #语句从顺序文件中读入一行数据,并将该行数据赋予 一个变量。本示例假设TESTFILE文件内含数行文本数据。Dim TextL ineOpe n "TESTFILE" For In put As #1 '打开文件。Do While Not EOF(1) '循环至文件尾。Line In put #1, TextL ine '读入一行数据并将其赋予某变量Debug.Pri nt T

12、extLi ne '在立即窗口中显示数据。LoopClose #1 ' 关闭文件。11.如何操作“文本文件”fso(Filesystemobject)对象集中的文件集合里有 readline方法。Dim of As ObjectDim fs as Object dim TextL ine as stri ngSet fs=createobject("scripti ng.Filesystemobject") set of=fs.Ope nTextFile(app,path+" Wmyfile.aaa ") /myfile.aaa是一个文本

13、文件textl in g=of.readli ne/如果你要读取第14行,可以用一个循环,跳过前面的13行,如下dim lop as in tegerfor lop=0 to 12of.skipn ext/然后再读取12.搜索了一下,大家主要用两种方法对文本文件加密。1. 对文本文件的ASC码加减2. 用XOF函数我发现都有问题举例1代码Public Fun ction nnnn (ByVai s As Stri ng) As Stri ng '解密On Error Resume NextDim ss As Strin g, i As Byte, le ns As Bytelens =

14、 Len(s)For i = 1 To lensss = ss & Chr(Asc(Mid(s, i, 1) - lens - i) Next nnnn = ss End FunctionPublic Function mmmm(ByVal s As String) As String ' 加密On Error Resume NextDim ss As String, i As Byte, lens As Bytelens = Len(s)For i = 1 To lensss = ss & Chr(Asc(Mid(s, i, 1) + lens + 1)Nextmmm

15、m = ssEnd Function当文件中有“! ”时出错XOF加密Dim I as longFor I=1 To UBound(LoadBytes)LoadBytes(I)=LoadBytes(I) Xor &HFFNext I13. 怎么判断一个文本文件是否打开? 判断如果没打开就删除该文本文件! 要用到 FileSystemObject 对象的 FileExists 和 deletefile 方法if dir(myfile)="" then exit subFileNumber = FreeFile ' 取得未使用的文件号。On Error GoTo

16、 ErrorHandler ' 打开错误处理程序。Open MyFile For Output As #FileNumber '打开输出文件。Kill "TESTFILE" ' 试图删除已打开的文件。Exit Sub ' 退出程序,以避免进入错误处理程序。ErrorHandler: ' 错误处理程序。Select Case Err.Number ' 检查错误代号。Case 55 ' 发生“文件已打开”的错误。Close #FileNumber ' 关闭已打开的文件。Case Else' 处理其他错误状态

17、 . . .End SelectResume ' 将执行返回到发生错误的语句。14. 打开一个文本文件怎样最快?Dim fn As Long, ts As Stringfn = FreeFileOpen "c:test.txt" For Binary As #fnts = StrConv(InputB(LOF(fn), #fn), vbUnicode)Text1 = tsClose #fnDim fn As Long, ts As Stringfn = FreeFileOpen "c:test.txt" For Binary As #fnts =

18、 Input(LOF(fn), #fn)Text1 = tsClose #fn15. 怎么判断文本文件读取到了最后一行?用 fsoTextStream.AtEndOfStream 可以判断16. 如何在文本文件中插入一行字串?用 Open For Append 的方法只能加在最后面就用两个文件合并好了Shell "command /c copy aa.txt + bb.txt cc.txt ", vbHide 但我觉的不是太好,你自己看看对你有没有帮助吧。17.Open "TESTFILE.txt" For Output As #1 ' 打开输出

19、文件。Write #1, "Hello World", '写入以逗号隔开的数据。Write #1, ' 写入空白行。Close #1 ' 关闭文件请问怎样在原先 TESTFILE.txt 增加 Hello World (即不删除原先的内容)Open "TESTFILE.txt" For Append As #1Write #1, "Hello World",Close #118. 如何实现对文本文件任意一行的读写?利用 VB 的 File System Objects (FSO 对象模型要想对任一行读写,不用将

20、前面内容顺序读出,但要用FSO对象的方法移动文件 指针,具体方法如下:1. 在 VB 编辑器中引用“ Microsoft Script ing Run Time"2. Dim fso As New FileSystemObject '定义 FSC对象Dim ts As TextStream'定义文本流' 打开文件Set ts = fso.OpenTextFile("c:test.txt", ForWriting)之后即可用 ts 的方法进行操作,可参见 MSD,N 以下简要说明: 读数据有: Read、 ReadLine、ReadAll写数

21、据有: Write 、WirteBlankLine 、WirteLine 移动文件指针有: Skip 、SkipLine操作完毕要关闭文件流ts.close19. 在文件结尾写上新的行:Dim tFileNumber As IntegerDim tWriteStr As String '要写的字符串。tFileNumber=FreeFile tWriteStr= 你需要的内容Open pFileName For Append As #tFileNumber 'Append为在文件结尾顺序写文件夹。或者以 Output 模式打开,使用 Seek(tFileNumberm,LOF(

22、tFileNumber) 也可以定义指针到文件结尾。Print #tFileNumber,tWriteStr '写到文件里。Close #tFileNumber如果文件上一行没有换行,将导致你写的第一行和原来文件最后一行接在一起。 解决办法是:tWriteStr=Chr(13) & Chr(10) & tWriteStr在写第一行前加这一句,将导致在这行前加换行符号另外,假如你有 100 行要写的内容, 那么你往文件写 100 次不如把 100行合 并成一个字符串一起写的好。 写 100行的时间比合并 100行后写一次的时间要慢。同时,不要多次OpenClose地写文件

23、。Open和Close都要重新分配缓冲区, 导致程序速度下降。尽量在一次 Open后,全部写完再Close,这样可以提高效 率。但是需要特别注意! 在 Close 前,如果程序因某种原因非法关闭, 那么可能 要丢失数据。因为只有在 Close 后才将缓冲区里的信息真正全部保存。而没有 Close 的文件,可能有部分内容在内存里没有存盘,这是很危险的。如果你确保 在短时间内进行单一的操作, 那么就在 Close 前写过程。 如果需要长时间的复杂 操作,就要多次 Open Close 了。在 OpenClose 之间进行存取操作将获得最快的效率, 而分多次 OpenClose 获得最佳的安全。此外

24、还有一个诀窍:如果你想在读一个文件同时写一个文件, 那只要把它分别用两个方式打开。Open "1.txt" For Input As #1Open "1.txt" For Output As #2Print #2,"小仙妹 " ' 写 1.txtSeek #1,1Line Input #1,Ld ' 读 1.txtSeek #1,1 ' 如果去掉这句,你看看读第而次的时候会怎样?(肯定出 错了!)Line Input #1,LdClose #2Close #1典型的读文件:Dim tFileNumber As

25、Integer ' 文件号Dim tLoadStr As String ' 读文件行的变量 tFileNumber=FreeFile 'FreeFile 是取当前闲置的文件号的函数。 实现 自动分配一个文件号码。这样使这段程序几乎可以兼容在程序所有的部分。Open pFileName For Input As #tFileNumber 'Input 方式为顺序读文件。Line Input #tFileNumber,tLoadStr 'Line Input 语句为整行读取,否则 如果只用 Input 则遇到逗号也算一个段落。如果你想读第 12 行,在不知道

26、 12 行的位置的前提下,那要读 12 次的。Close #tFileNumber读文件指定行: 读文件最大的问题就是判断文件的结束。 如果超过文件结束, 将 产生错误。使用EOF函数可以判断“文件指针”是否到达文件结束位置。方法一(传统方法):Dim tFileNumber As IntegerDim tLoadStr As StringDim tEnd As Long ' 你要读的行数。Dim tAdd As Long ' 记数 tFileNumber=FreeFile tEnd=12 ' 假设你要读 12行Open pFileName For Input As #

27、tFileNumberDo Until EOF(tFileNumber) Or tAdd=tEnd 'EOF函数是判断是否已经到了结尾或到了你想找的行。Line Input #tFileNumber,tLoadStrtAdd=tAdd+1 ' 记数累加,读一行加一。LoopClose #tFileNumber方法二(比较实用的):Dim tFileNumber As IntegerDim tLoadStr As StringDim tEnd As Long ' 你要读的行数。Dim tAdd As Long ' 记数 tFileNumber=FreeFiletE

28、nd=12 ' 假设你要读 12 行Open pFileName For Input As #tFileNumberFor tAdd=1 To tEndLine Input #tFileNumber,tLoadStrIf EOF(tFileNumber) Then Exit For ' 到结尾则退出循环。 NextClose #tFileNumber以上都是我在编程当中总结出来的非常惨痛的教训,希望你不要步我后尘20. 用FSO来读文本文件时怎样返回该文本文件的总行数?Set openfile = openfso.OpenTextFile(CommonDialog1.FileN

29、ame) Static i As Integeri = 0Do While Not openfile.AtEndOfLine openfile.ReadLinei = i + 1LoopMsgBox " 共" & i & "行", vbOKOnly, "hello"21. treeview 能够生成两层以上的节点吗?Private Sub Form_Load()Dim NodX As NodeSet NodX = TreeView1.Nodes.Add(, , "R", "ROOT&quo

30、t;)Set NodX = TreeView1.Nodes.Add("R", tvwChild, "key1", "CHILD")Set NodX = TreeView1.Nodes.Add("key1", tvwChild, "key2", "CHILD_CHILD")NodX.EnsureVisibleEnd Sub22. 怎样获得一个文件夹里的文件数 , 并且分别得到里面的文件名 ? dim sTemp as stringdim sFileName(100) as st

31、ring ' 记录文件名dim intTotal as integer '文件总数intTotal=0sTemp=Dir$(Path & "*.*") do while sTemp<>""sFileName(intTotal)=sTemp intTotal=intTotal+1 sTemp=Dir$loop23. 取文件夹的文件名列表,并按修改时间排序?' 添加工程- 引用 “Microsoft Scripting RuntimeOption ExplicitPrivate Type typFlieDateNa

32、me As String CreatedDate As Date AccessedDate As Date ModifiedDate As DateEnd TypePrivate myFiles() As typFlieDate ' 包含文件的数组Private Sub Command1_Click()Dim n As Integern = GetFolderFiles("d:", 1)End SubPrivate Function GetFolderFiles(Path As String, OrderBy As Integer) AsInteger'pa

33、th 文件夹路径'orderby 排序依据 1 :按创建时间 2 :按访问时间 3 :按修改时间 4 : 按名称' 返回文件夹中文件的个数' 如果要计算子文件夹可以通过 fldr.SubFolders 访问,方法类似Dim tmpFile As typFlieDateDim n As Integer, i As Integer, j As IntegerDim fso As New FileSystemObjectDim fldr As FolderDim fls As FilesDim fl As File' 读去文件Set fso = CreateObjec

34、t("Scripting.FileSystemObject")Set fldr = fso.GetFolder(Path)Set fls = fldr.Filesn = fls.CountIf n > 0 ThenReDim myFiles(n - 1)i = 0For Each fl In flsmyFiles(i).Name = fl.Name myFiles(i).AccessedDate = fl.DateLastAccessed myFiles(i).CreatedDate = fl.DateCreated myFiles(i).ModifiedDate = fl.DateLastModifiedi = i + 1Next' 排序 - 升序For i = 0 To n - 1For j = i + 1 To n - 1Select Case OrderByCase 1 ' 创建时间If myFiles(i).CreatedDate > myFiles(j).CreatedDate The

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论