一个txt文件,以#号开头,跟着是内容,跟着以一空白行作为过渡标志,请问如何将它内容提取出来,并且用两个按钮一个是上一段信息,一个是下一段信息将它一一列举出来。txt格式如下:
#aaaaaaa#bbbbbbb#ccccccc
谢谢!

解决方案 »

  1.   

    我设计初衷是这样的,有一个txt文档放置了一些脑筋急转弯或者笑话故事在里面,#号做为题目和答案,每道题用一个空白行过渡,增加两个按钮,一个写着是上一条,一个写着下一条,当然可以有第一条和最后一条,想打开主程序时候,随机弹出一个笑话或脑筋急转弯出来,作为每日一贴功能,作为一个主程序的调剂功能,笑话或故事用数据库来做估计好做点,不过一般在网上下载是txt文档,为了免去转换麻烦,所以直接用txt文档来做,应该大概知道我的意思了吧?呵呵。
      

  2.   


        Dim intPos As Integer
        Dim strContent As String
        Open App.Path & "\笑话.txt" For Input As #1
        Do Until EOF(1)
            Line Input #1, strLine
            strLine = Trim$(strLine)
            Select Case Left(strLine, 1)
            Case "#"
                intPos = InStr(strLine, vbCrLf)
                   Debug.Print intPos
                If intPos > 0 Then
                   strContent = Mid$(strLine, 2, intPos - 2)
                Else
                   strContent = Mid$(strLine, 2)
                End If
                Text1 = strContent
            End Select
            Loop
        Close #1我的程序初步是这样,不过还不能实现。
      

  3.   

    '窗体上放二个命令按钮command1,command2;一个富文本框RichTextBox1;一个标签Label1
    Option ExplicitDim Dataline() As String
    Dim Number As Long
    Private Sub Command1_Click()
            On Error Resume Next
            
            Number = Number - 2
            If Number < 0 Then Number = 0
            Print Number
            If Len(Dataline(Number)) <> 0 Then
               Label1.Caption = Right(Dataline(Number), Len(Dataline(Number)) - 1)
            End If
    End SubPrivate Sub Command2_Click()
            On Error Resume Next
            
            If Len(Dataline(Number)) <> 0 Then
               Number = Number + 2
            End If
            If Number > UBound(Dataline) Then Number = UBound(Dataline) - 1
            Print Number
            If Len(Dataline(Number)) <> 0 Then
               Label1.Caption = Right$(Dataline(Number), Len(Dataline(Number)) - 1)
            End If
    End SubPrivate Sub Form_Load()
            Command1.Caption = "上一个"
            Command2.Caption = "下一个"
            RichTextBox1.FileName = "c:\txt\txt.txt"
            Dataline = Split(RichTextBox1.Text, vbCrLf)
            Label1.Caption = Right(Dataline(0), Len(Dataline(0)) - 1)
            Number = 0
    End Sub
      

  4.   


    根据LZ的要求做了一个,不知是否符合要求,如果需要
    http://download.csdn.net/source/1614026
      

  5.   


    Dim tmp() As String
    Dim i As IntegerPrivate Sub Command1_Click()
       i = i - 1
       If i < 0 Then i = 0
       Text1 = tmp(i)
            
    End SubPrivate Sub Command2_Click()
       i = i + 1
       If i > UBound(tmp) Then i = UBound(tmp)
       Text1 = tmp(i)
       
    End SubPrivate Sub Form_Load()
      Dim temp As String, temp1 As String
      Open "c:\aaa.txt" For Input As #1
      Do While Not EOF(1)
         Line Input #1, temp
         If Trim(temp) <> "" Then
            temp1 = temp1 & Trim(temp)
         End If
      Loop
      temp1 = Mid(temp1, 2)
      tmp = Split(temp1, "#")
      Text1 = tmp(0)
      
    End Sub
      

  6.   

    谢谢各位的回复,孤独剑大哥的代码写的非常好,特别感谢!我为了不把每条笑话的#号输出,改了一句,Label1.Caption = Right(sData(0), Len(sData(0)) - 1),猴哥可能还是没理解我题目的需求,不过代码写的也辛苦了,我需要的是类似于以前软件里那种每日一贴的效果,正如孤独剑大哥贴图那样子,同样谢谢了。