Чтение разделенных запятыми строк из текстового поля
Я читал и читал тонны ответов, модифицировал код и до сих пор не могу понять, как решить эту проблему.
У меня есть текстовое поле, которое получает многострочную информацию через запятую из файла.txt или.csv. Пример:
Перл-Харбор; Тикондерога CG-45;300;1000
Эверетт; Тикондерога CG-46;310;1200
Перл-Харбор; Берк DDG-110;215;800
Теперь появится поле со списком для выбора порта (в этом примере это будут Перл-Харбор и Эверетт). После выбора "Перл-Харбор" в другом многострочном текстовом поле будут отображаться только те строки, в которых "Перл-Харбор" является первым элементом.
Теперь идет то, что я смог написать:
Public Sub Readfile ()
TextBox1.Text = System.IO.File.ReadAllText("libro1.csv")<br>
Dim lines() As String<br>
lines = Split(TextBox1.Text, vbCrLf)<br>
Dim strline0 As String = lines(0)<br>
Dim strArray0() As String = strline0.Split(";")<br>
Dim strline1 As String = lines(1)<br>
Dim strArray1() As String = strline1.Split(";")<br>
...
End Sub
Первая проблема, которую я нахожу, состоит в том, что для каждой строки, имеющейся в.csv, я должен написать эти две строки кода, чтобы иметь массив со всей информацией. Но я не могу этого сделать, потому что я не могу знать, сколько строк будет в CSV.
Я немного потерян здесь. Я никого не прошу творить чудеса и давать мне код, который я могу скопировать и вставить, но я был бы признателен, если бы кто-нибудь смог мне помочь в этом.
1 ответ
Во-первых, вы бы лучше использовать List
чем массив. Особенно для коллекции строк, с ними гораздо проще работать. При этом вы правы в том, что вы не можете по отдельности называть свои строки, потому что не знаете, сколько их будет. Вот почему вам нужно создать список строк и перебрать их, как...
Public Sub Readfile()
TextBox1.Text = System.IO.File.ReadAllText("libro1.csv")
Dim lines As List(of String)
Dim allResults As New List(of List(of String))
lines = Split(TextBox1.Text, vbCrLf)
For Each line In lines
Dim result As List(Of String) = line.Split(CChar(";"))
allResults.Add(result)
Next
End Sub
Это позволит вам по существу сказать: "Для каждой строки в файле возьмите каждую часть, разделенную точкой с запятой, и поместите ее в список с именем" result ". Затем поместите" result "в другой список результатов с именем" allResults ". "
Вот! Сила петель!