| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 631 人关注过本帖
标题:关于文本文件读入的问题
只看楼主 加入收藏
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
结帖率:70%
收藏
 问题点数:0 回复次数:2 
关于文本文件读入的问题
下面是一个读入并显示文本文件最后一行的源程序,现在有两个问题,
1:这段程序如何修改成读入并显示文本文件倒数第二行?   
2:为什么它在文本框中显示的是乱码?

窗体中一个文本框,一个command按钮,

Private Sub Command1_Click()
Dim MaxSize     As Long
  Dim NextChar     As Long
  Dim MyStr     As String
  Dim MyChar     As String
  Open "c:\a.txt" For Input As #1                 '打开输入文件。
  MaxSize = LOF(1)           '取得文件的总字符数。
  '   用循环读入,从最后开始往前读。
  For NextChar = MaxSize To 1 Step -1
          Seek #1, NextChar           '   设置读写位置。
          MyChar = Input(1, #1)           '读入一字符。
          If MyChar = vbLf Then
                Exit For
          Else
                MyStr = MyChar & MyStr        '当前字符加在字符串前面
          End If
  Next NextChar
  Close #1         '关闭文件
  Text1.Text = MyStr
End Sub
搜索更多相关主题的帖子: 文本文件 
2010-04-27 14:07
wei855198
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:228
专家分:944
注 册:2009-4-24
收藏
得分:0 
略为改动了下,测试功能可以实现读取倒数第二行,不过结构上有点混乱
程序代码:
Private Sub Command1_Click()
Dim MaxSize     As Long
  Dim NextChar     As Long
  Dim MyStr     As String
  Dim MyChar     As String
  Open "c:\a.txt" For Input As #1                 '打开输入文件。
  MaxSize = LOF(1)           '取得文件的总字符数。
  '   用循环读入,从最后开始往前读。
 
  Dim lng As Long, j As Long
  lng = MaxSize

  For NextChar = MaxSize To 1 Step -1
          Seek #1, NextChar           '   设置读写位置。
          MyChar = Input(1, #1)           '读入一字符。
          If Not MyChar = vbLf Then
            lng = lng - 1
          Else                      '倒序读到回车符时,开始进行读第二行的循环
           
            For j = lng - 2 To 1 Step -1
                Seek #1, j
                MyChar = Input(1, #1)
                If Not MyChar = vbLf Then
                    MyStr = MyChar & MyStr
                Else                        '再次读到回车符时,第二行读取完毕,结束整个循环
                    Text1.Text = MyStr
                    Close #1
                    Exit Sub
                End If
            Next j
        End If
               
               
  Next NextChar
  Close #1         '关闭文件
  Text1.Text = MyStr
End Sub



护肤小店 http://mina2010.
靓装小店 http://liangliyizu2010.
2010-04-27 16:04
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:0 
Option Explicit

Dim max As Long
Dim myChar As String
   
Private Sub Command1_Click()
    Dim h As Integer, hC As Integer
    Dim myStr As String
    h = Val(Text2)
    If h > max Then
        MsgBox "beyond!"
        Exit Sub
    End If
    Open "e:\vbs.txt" For Input As #1
        Do While Not EOF(1)
            myChar = Input(1, #1)
            If myChar = vbLf Then
                hC = hC + 1
            End If
            If hC = h - 1 Then
                myStr = myStr & myChar
            End If
        Loop
    Close #1
    Text1 = myStr
End Sub

Private Sub Form_Load()
    Open "e:\vbs.txt" For Input As #1
        Do While Not EOF(1)
            myChar = Input(1, #1)
            If myChar = vbLf Then
                max = max + 1
            End If
        Loop
    Close #1
    max = max + 1
    Label1.Caption = "共有" & max & "行"
End Sub
楼上的试了一下,看代码倒是没什么,测试好像不怎么对啊,受你启发,写了个可以读任意行的
2010-05-02 00:45
快速回复:关于文本文件读入的问题
数据加载中...
 
   



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

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