none
求助关于读取文本的内容写入ListBox的问题。 RRS feed

  • 问题

  • 例如有个D:\a.txt的文本,里面内容为:

    星期一|monday

    星期二|tuesday

    星期三|wednesday

    怎样将文本里面“|”符号前面的星期一、星期二、星期三分行写入ListBox1里,将“|”符号后面的英文星期写入ListBox2里?

    2010年6月7日 3:46

答案

  • 你好!

         这样分割一下就可以了,得到的string数组包含分割后的字符串:

        Dim split As String () = myString.Split(New [Char]() {"|" c})


    周雪峰
    • 已标记为答案 Kira Qian 2010年6月15日 5:45
    2010年6月7日 14:53
    版主

全部回复

  • 你好!

         这样分割一下就可以了,得到的string数组包含分割后的字符串:

        Dim split As String () = myString.Split(New [Char]() {"|" c})


    周雪峰
    • 已标记为答案 Kira Qian 2010年6月15日 5:45
    2010年6月7日 14:53
    版主
  • 结合例子应该怎样写呢版主,本人基础不好~~
    2010年6月7日 15:18
  •  假设   那个文件保存在C盘的1.txt,下面这个应该可以,本人的方法有点笨。。。欢迎大家批评指正。。

    Dim FilePath As String = "c:\1.txt"    ' 文件路径

    ' 读取文件全部内容,第二个参数是为了防止读取中文出现乱码

    Dim AllText As String = My.Computer.FileSystem.ReadAllText(FilePath,System.Text.Encoding.GetEncoding("GB2312"))

    ' 分割字符串,使用 | 和换行符来分割 ,并取消空字符(=V=貌似是这样)

    Dim split As String() = AllText.Split(New String() {"|", ControlChars.CrLf}, StringSplitOptions.RemoveEmptyEntries)

    ' 这个后面就是分别写到两个列表框了

            For i As Integer = 0 To split.Length - 1 Step 2

                ListBox1.Items.Add(split(i))

            Next

            For i As Integer = 1 To split.Length - 1 Step 2

                ListBox2.Items.Add(split(i))

            Next

    2010年6月10日 14:00
  • 谢谢回答,试过可以实现,但是如果TXT里面有空行或不含有|符号的行读取就乱了~
    2010年6月12日 4:12
  • 你好!    如果你的文本文件里面格式不固定,你需要做特殊的处理,实际上很难有通用的方法可以解析的!
    周雪峰
    2010年6月12日 13:47
    版主