Связанные текстовые файлы - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Всем привет!!! Такая задача: VB2008 На форме 2 ЛБ, в ресурсах 2 текстовых файла: В одном список писателей, в другом писатели с их произведениями. Файлы делаю в массивы. Массив писателей в ЛБ1. При выборе писателя необходимо в ЛБ2 записать их произведения. Делаю так:
если выбранный в ЛБ1 совпадает с элементом массива произведений, то вывести начиная со следующей строки до пустой строки (в массиве произведений писатель и произведения идут подряд, а следующий через пустую строку) Ругается на этот алгоритм. Может есть как-то проще и современней способ??? Подскажите плиз!!! Файлы: писатели: Лермонтов Пушкин Толстой Чехов Достоевский произведения: Лермонтов Мцыри Корсар Герой Н В Пушкин Руслан Рыбка Салтан Онегин Толстой Война и мир Анна Дество Чехов Дама Ваня 3 Сестры Сад Чайка Достоевский Прест Карамазовы

Решение задачи: «Связанные текстовые файлы»

textual
Листинг программы
Public Class Form1
    Dim Authors As List(Of Author) 'Коллекция всех авторов и их книг
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim OFD As New OpenFileDialog
        If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
            LoadFile(OFD.FileName)
            ListBox1.Items.Clear()
            ListBox2.Items.Clear()
 
            For Each avt As Author In Authors
                ListBox1.Items.Add(avt.Name) 'Заполняем наш ListBox1 именами авторов из сформированной коллекции
            Next
        End If
    End Sub
 
    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        For Each Avt As Author In Authors
            If Avt.Name = sender.SelectedItem Then
                ListBox2.Items.Clear()
                ListBox2.Items.AddRange(Avt.Books.ToArray) 'Показываем все книги выбранного автора
            End If
        Next
    End Sub
 
    Public Sub LoadFile(FileName As String)
        Authors = New List(Of Author) 'Создаем новую коллекцию всех авторов и их книг
        For Each Line As String In IO.File.ReadAllLines(FileName, System.Text.Encoding.Default)
            If Not String.IsNullOrWhiteSpace(Line) Then
                Dim a As New Author 'Создаем новый класс автора
                a.Name = Line.Split("=")(0) 'Даем ему имя
                a.Books.AddRange(Line.Split("=")(1).Split(";")) 'Запоминаем его книжки
                Authors.Add(a) 'Добавляем нового автора в коллекцию
            End If
        Next
    End Sub
 
    Public Class Author
        Public Property Name As String
        Public Property Books As New List(Of String)
    End Class
End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5