Imports System.IO
Public Class frmLink
'Для определения положения в трее
Private FormState As FormWindowState
Private Sub Crypt_Load(ByVal sender As Object, ByVal e As System.EventArgs)
'Форма не должна отображаться в панели при сворачивании
'Самоучитель VB 2008; БХВ-Петербург; Стр. 198.
Me.ShowInTaskbar = False
NotifyIcon1.Visible = True
NotifyIcon1.Text = "Обработка ссылок"
Me.StartPosition = FormStartPosition.WindowsDefaultLocation
End Sub
Private Function FileSelect(Optional ByVal f As String = Nothing) As String
'Диалог сохранения файла
'Самоучитель VB 2008; БХВ-Петербург; Стр. 121.
'Фильтр
SaveFileDialog1.Filter = _
"Files (*.txt)|*.txt|All files (*.*)|*.*"
'Заголовок файла
SaveFileDialog1.Title = "Сохранение файла"
'Определяем существование файла
SaveFileDialog1.DefaultExt = True
'Запрос подтверждения при замене файла
SaveFileDialog1.OverwritePrompt = False
'Обзор в дирректории, указанной выше
SaveFileDialog1.RestoreDirectory = True
'Если указанный файл существует - отображаем его
SaveFileDialog1.FileName = f
'Добавляет расширение к имени файла
SaveFileDialog1.AddExtension = True
'Отображаем диалог выбора файла
SaveFileDialog1.ShowDialog()
'Отображаем путь к файлу и файл
FileSelect = SaveFileDialog1.FileName
'Очищаем компонент
SaveFileDialog1.FileName = Nothing
End Function
Private Function FileOpen(Optional ByVal f As String = Nothing) As String
'Диалог открытия файла
'Самоучитель VB 2008; БХВ-Петербург; Стр. 121.
'Фильтр
OpenFileDialog1.Filter = _
"Files (*.txt)|*.txt|All files (*.*)|*.*"
'Заголовок файла
OpenFileDialog1.Title = "Открытие файла"
'Определяем существование файла
OpenFileDialog1.DefaultExt = True
'Проверка существования файла
OpenFileDialog1.CheckFileExists = True
'Запрещвем выбор нескольких файлов
OpenFileDialog1.Multiselect = False
'Обзор в дирректории, указанной выше
OpenFileDialog1.RestoreDirectory = True
'Если указанный файл существует - отображаем его
OpenFileDialog1.FileName = f
'Добавляет расширение к имени файла
OpenFileDialog1.AddExtension = True
'Отображаем диалог выбора файла
OpenFileDialog1.ShowDialog()
'Отображаем путь к файлу и файл
FileOpen = OpenFileDialog1.FileName
'Очищаем компонент
OpenFileDialog1.FileName = Nothing
End Function
Private Sub lnkMail_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles lnkMail.LinkClicked
'Рецепты программирования на Microsoft VB.NET; Мастеркласс; 2004; Стр. 667.
Dim IE As New SHDocVw.InternetExplorer()
IE.Navigate("mailto:sergey-911@mail.ru")
lnkMail.LinkVisited = True
IE.Quit()
End Sub
Private Sub lnkSayt_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles lnkSayt.LinkClicked
'Рецепты программирования на Microsoft VB.NET; Мастеркласс; 2004; Стр. 667.
Dim IE As New SHDocVw.InternetExplorer()
IE.Navigate("https://kupisait.ru")
IE.Visible = True
lnkSayt.LinkVisited = True
End Sub
Private Sub NotifyIcon1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles NotifyIcon1.Click
If Me.WindowState = FormWindowState.Minimized Then
Me.Visible = True
Me.WindowState = FormState
Else
Me.Visible = False
Me.WindowState = FormWindowState.Minimized
End If
End Sub
Private Sub frmLink_LocationChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LocationChanged
If Me.Visible = False Then Return
If Me.WindowState = FormWindowState.Minimized Then
Me.Visible = False
Else
Me.Visible = True
End If
If Me.WindowState <> FormWindowState.Minimized Then
FormState = Me.WindowState
End If
End Sub
Private Sub cmdOpenFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOpenFile.Click
'Обзор файла
Dim f As String
f = FileOpen()
If Trim(f) = "" Then
Return
End If
'Заполняем поле исходного файла именем выбранного файла
txtOpenFile.Text = f
'Заполняем значение конечного файла
txtFinishFile.Text = FileIO.FileSystem.GetFileInfo(f).DirectoryName & "" & IO.Path.GetFileNameWithoutExtension(f) & "_mod_" & FileIO.FileSystem.GetFileInfo(f).Extension
End Sub
Private Sub cmdFinishFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFinishFile.Click
'Обзор файла
Dim f As String
f = FileSelect()
If Trim(f) = "" Then
Return
End If
'Заполняем поле конечного файла именем выбранного файла
txtFinishFile.Text = f
End Sub
Private Sub cmdRun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdRun.Click
Dim fileReader As System.IO.StreamReader
Dim fileWriter As System.IO.StreamWriter
If Trim(txtOpenFile.Text) = "" Or Trim(txtFinishFile.Text) = "" Then
MsgBox("Укажите исходный и конечный файлы в соответствующие поля!", MsgBoxStyle.Exclamation)
Exit Sub
End If
Try 'Обработка ошибок
fileReader = My.Computer.FileSystem.OpenTextFileReader(txtOpenFile.Text)
fileWriter = My.Computer.FileSystem.OpenTextFileWriter(txtFinishFile.Text, False)
Dim stringReader As String
Dim linenum As Integer = 0
Dim n As Integer = 0
While Not fileReader.EndOfStream()
stringReader = fileReader.ReadLine()
If InStr(stringReader, "https://") > 0 Then
n = InStr(9, stringReader, "/")
ElseIf InStr(stringReader, "http://") > 0 Then
n = InStr(8, stringReader, "/")
End If
If n > 0 Then n = n - 1
stringReader = Mid(stringReader, 1, n)
If Len(stringReader) > 0 Then
fileWriter.WriteLine(stringReader)
Else
fileWriter.WriteLine(fileReader.ReadLine())
End If
linenum = linenum + 1
stringReader = ""
n = 0
End While
fileReader.Close()
fileWriter.Close()
MsgBox(linenum & " строк обработано")
Catch 'Обработка ошибок
MsgBox("Укажите правильно исходный и конечный файлы в соответствующие поля! Исходный файл должен быть существующим!", MsgBoxStyle.Exclamation)
End Try 'Обработка ошибок
End Sub
End Class