В каждой строке текстового файла определить самое длинное слово нечетной длины и записать их в новый файл - Visual Basic .NET (251397)

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

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

Собственно, задание из заголовка темы.

С единственной оговоркой, необходимо использовать метод my.computer.filesystem. Без него - никак

. Представленный мною код ниже - рабочий не до конца. После печати искомого слова в текстбокс, программа выдает ошибку, затем стирает его и пишет новое. Вероятно, я где-то очень глупо ошибаюсь.

Решение задачи: «В каждой строке текстового файла определить самое длинное слово нечетной длины и записать их в новый файл»

textual
Листинг программы
  Dim source, result As String
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        read(TextBox1.Text)
        Dim file2 As String = TextBox2.Text
        Dim Lines() As String = Split(source, vbCrLf)
        For i = 0 To UBound(Lines)
            vivod(Solution(Lines(i)), TextBox3)
            Write(file2, Solution(Lines(i)))
        Next
    End Sub
 
    Sub Write(ByVal path As String, ByVal content As String)
        Try
            My.Computer.FileSystem.WriteAllText(path, content & vbNewLine, True, System.Text.Encoding.Default)
        Catch ex As Exception
            MsgBox("ошибка при сохранении файла" & vbNewLine & ex.Message)
        End Try
    End Sub
 
    Sub read(ByVal filename As String)
        Try
            source = My.Computer.FileSystem.ReadAllText(filename, System.Text.Encoding.Default)
        Catch ex As Exception
            MsgBox("Невозможно считать файл " & vbNewLine & ex.Message)
        End Try
    End Sub
 
    Function Solution(ByVal InputWord As String) As String
        Dim RangeMax As Integer, Range As Integer
        Dim maxword As String = ""
        Dim word() As String = InputWord.Split(" ")
        RangeMax = 2
        For Range = 0 To UBound(word)
            If word(Range).Length Mod 2 <> 0 Then
                If word(Range).Length > RangeMax Then
                    RangeMax = word(Range).Length
                    maxword = word(Range)
                End If
            End If
        Next
        Return maxword
    End Function
 
    Sub vivod(ByVal z As String, ByRef t As TextBox)
        If z.Length > 0 Then
            t.Text &= z & vbCrLf
        Else
            t.Text &= "Строка пуста" & vbCrLf
        End If
    End Sub

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


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

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

14   голосов , оценка 3.643 из 5
Похожие ответы