none
如何读取文本文件中的指定部分的内容? RRS feed

  • 问题

  • 文本文件内容是这样的, 现在要读入【基金重仓股板块】部分或其他部分

    该怎么做呢? 请指教!

    【沪深300板块】
    ┌─────────────────────────────┐
    | 000001  深发展A   000002   万科A    000009   中国宝安  |
    | 000012   南玻A    000024  招商地产   000027   深圳能源  |
    | 000031  中粮地产   000039  中集集团   000046   泛海建设  |
    | 601939  建设银行   601958  金钼股份   601988   中国银行  |
    | 601991  大唐发电   601998  中信银行                      |
    └─────────────────────────────┘
    【基金重仓股板块】
    ┌─────────────────────────────┐
    | 000001  深发展A   000006  深振业A   000009   中国宝安  |
    | 000021  长城开发   000024  招商地产   000028   国药一致  |
    | 000031  中粮地产   000043  中航地产   000060   中金岭南  |
    | 601001  大同煤业   601009  南京银行   601607   上海医药  |
    | 601666  平煤股份                                         |
    └─────────────────────────────┘
    【金融板块】
    ┌─────────────────────────────┐
    | 000001  深发展A   000562  宏源证券   000563   陕国投A  |
    | 000686  东北证券   000728  国元证券   000776   广发证券  |
    | 000876   新希望    000882  华联股份   002142   宁波银行  |
    └─────────────────────────────┘
    【蓝筹股板块】
    ┌─────────────────────────────┐
    | 000001  深发展A   000002   万科A    000024   招商地产  |
    | 000063  中兴通讯   000651  格力电器   000680   山推股份  |
    | 000778  新兴铸管   000786  北新建材   000800   一汽轿车  |
    └─────────────────────────────┘
    【上海本地股板块】
    ┌─────────────────────────────┐
    | 002022  科华生物   002028  思源电气   002058    威尔泰   |
    | 002116  中国海诚   002158  汉钟精机   002162    斯米克   |
    | 002178  延华智能   002184  海得控制   002195   海隆软件  |

    2012年5月25日 1:00

答案

  • 文本文件不同于数据库,你只能老老实实跳行呗:

    【Sample】

    Module A
        Public Sub main()
            '全部读入
            Dim values() As String = File.ReadAllLines("d:\try.txt")
            '找到基金重仓股板块这部分位置
            Dim index = Array.IndexOf(values, "【基金重仓股板块】")
            index += 1
            '找到金融板块
            Dim index2 = Array.IndexOf(values, "【金融板块】")
            index2 -= 1
            '开始读取
            For i As Integer = index To index2
                Console.WriteLine(values(i))
            Next
        End Sub
    End Module


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    • 已标记为答案 Work8862 2012年5月25日 17:58
    2012年5月25日 2:15
    版主
  • 我写了一段,是这样实现的, 给点意见:

            Dim filename As String = "c:\板块.txt"
            Dim fileStream As FileStream = New FileStream(filename, FileMode.Open, FileAccess.Read)
            Dim streamReader1 As New StreamReader(fileStream)
            Dim line As String
            Dim lines As List(Of String) = New List(Of String)
            Dim i1 As Integer = 0
            Dim si As Integer = 0
            Do
                line = streamReader1.ReadLine()
                i1 += 1
                If line IsNot Nothing Then
                    If line.Trim = "【沪深300板块】" Then
                        si = i1
                    End If
                End If
                If si > 0 And i1 > si Then
                    If line IsNot Nothing Then
                        If line.Length > 2 Then
                            If line.Substring(0, 2).StartsWith("【") Then
                                Exit Do
                            End If
                        End If
                    End If
                    lines.Add(line)
                End If
            Loop Until line Is Nothing


    • 已编辑 Work8862 2012年5月25日 5:45
    • 已标记为答案 Work8862 2012年5月25日 17:58
    2012年5月25日 5:36

全部回复