2015-01-30 2 views
1

Это мой первый вопрос здесь, и я не знаю, что сказать, но я попытаюсь объяснить.Как получить информацию из текста в combobox в vb

Теперь у меня есть текстовый файл, который содержит:

[2000] name : any thing job : doctor age : 50 
[2002] name : anything else job : anything age : 60 
[2003] name : anything else job : anything else age : 55 

Как я могу получить все, что внутри этого [] в выпадающем списке, так что элементы ComboBox должно быть 2000, 2002, 2003? Btw, у моего текстового файла есть лот из строк, поэтому я не могу сделать это с линиями.

Мой второй вопрос, если у меня есть номера в выпадающий список, например

64080 
65090 
62055 

Какой код можно удалить последний номер из каждого пункта в выпадающем списке, чтобы быть:

6408 
6509 
6205 

Спасибо!

+0

Что вы имеете в виду «Я не могу делать это с помощью линий»? Я не понимаю, что вы имели в виду, и это кажется важным. Можете ли вы рассказать об этом? –

+1

Вы не знаете, как (1) предоставить значения для ComboBox или (2) манипулировать входом в форму, которую вы хотите. Для (2) попробуйте взглянуть на [методы в классе String] (https://msdn.microsoft.com/en-us/library/system.string_methods (v = vs.110) .aspx), например ' IndexOf' и 'Подстрока'. Подумайте, как вы можете их использовать. Попытайтесь разбить свой вопрос на более мелкие куски и искать ответы на эти мелкие кусочки. Если у вас есть дополнительная информация для добавления, [изменить свой вопрос] (https://stackoverflow.com/posts/28236264/edit/), а не отвечать на комментарии. –

ответ

0

Я надеюсь, что этот модуль дает хорошую отправную точку:

Imports System.IO.File 
Module NumModule 

    Function GetNumbers(ByVal PathString As String) As Integer() 

     Dim Line As String 
     Dim IntTable() As Integer 
     'Determines line count 
     Dim LineCount = System.IO.File.ReadAllLines(PathString).Length - 1 
     ReDim IntTable(LineCount) 
     'Initiating counter 
     Dim Counter As Integer = 0 
     'Copying numbers into Intable 
     Dim stream As New IO.StreamReader(PathString) 
     For Counter = 0 To LineCount 
      Line = stream.ReadLine 
      Dim PosS As Integer 
      Dim PosE As Integer 
      PosE = Line.IndexOf("]") - 1 
      PosS = Line.IndexOf("[") + 1 
      Dim Number As Integer 
      Number = CInt(Line.Substring(PosS, PosE)) 
      IntTable(Counter) = Number 
     Next Counter 
     stream.Close() 
     GetNumbers = IntTable 
    End Function 
End Module 

Позже, добавить выпадающий в форму (мы будем называть его Form1) и дважды щелкните на нем, чтобы добраться до Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load.

Оттуда вы можете добавить свои номера в свой список, используя цикл For, который начинается с 0 и заканчивается Ubound(NumModule.GetNumbers(StringPath:="YourStringPathHere",1). как следовать:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

     Dim counter As Integer = UBound(NumModule.GetNumbers(PathString:="D:\Test.txt"), 1) 
     For i As Integer = 0 To counter 

      ComboBox1.Items.Add(NumModule.GetNumbers(PathString:="D:\Test.txt")(i).ToString) 

     Next 
    End Sub 

Чтобы ответить на ваш второй вопрос, заменить содержание Form1_load «s следующим:

Dim counter As Integer = UBound(NumModule.GetNumbers(PathString:="D:\Test.txt"), 1) 
    For i As Integer = 0 To counter 
     Dim TrimmedString As String = NumModule.GetNumbers(PathString:="D:\Test.txt")(i).ToString 
     If Len(TrimmedString) = 5 Then 
      TrimmedString = TrimmedString.Remove(TrimmedString.Length - 1) 
     End If 
     ComboBox1.Items.Add(TrimmedString) 

    Next 

Мой конечный результат:

enter image description here

+0

О вашем втором вопросе? Вы хотите обрезать четырехзначное число до трехзначного числа? –

+0

да о втором я хочу удалить последнее число (его четырехзначное число до 4-значного числа) 64080 до 6408 – ryan2014

+0

http://i.epvpimg.com/DqJIc.jpg проверить, что pic у него есть мой комментарий LOL i dunno, как сделать комментарий здесь XD – ryan2014