Большая вещь, которую я увидел, это использование SaveFileDialog вместо FolderBrowserDialog .Но вы можете очистить и многое другое:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim ep As Integer
If String.IsNullOrWhitespace(TextBox1.Text) OrElse
String.IsNullOrWhitespace(TextBox2.Text) OrElse
Not Integer.TryParse(TextBox3.Text, ep) Then
MsgBox("You need to fill the requested inputs!")
Exit Sub
End If
Dim sfd As New SaveFileDialog()
sfd.InitialDirectory = Environment.SpecialFolder.DesktopDirectory
If sfd.ShowDialog() <> Windows.Forms.DialogResult.OK Then Exit Sub
Dim names() As String =
Enumerable.Range(1, ep).
Select(Function(e) String.Format("{0}{1:00}{2}{3}", TextBox1.Text, e, TextBox2.Text, vbCrLf)).
ToArray()
Dim result As String = String.Join("", names)
Label4.Text &= result
File.WriteAllText(sfd.FileName, Label4.Text)
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End Sub
Суть метода в следующем коде:
Enumerable.Range(1, ep).
Select(Function(e) String.Format("{0}{1:00}{2}{3}", TextBox1.Text, e, TextBox2.Text, vbCrLf)).
ToArray()
Используется Enumerable.Range()
функция для генерации последовательности целых чисел от 1 до количества эпизодов, проанализированных ранее в переменную ep
из TextBox3
.Затем он использует функцию IEnumerable<T>.Select()
, чтобы создать проекцию этих чисел на нужные строки.Select()
принимает аргумент делегата , который был представлен здесь как лямбда-выражение .Это лямбда-выражение использует String.Format()
, чтобы соединить каждую строку.В частности, номер эпизода помещается в заполнитель {1:00}
, где часть :00
представляет собой строку формата , чтобы гарантировать как минимум две цифры.Затем мы вызываем .ToArray()
, чтобы свернуть все в структуру, которая будет совместима с String.Join()
.