https://sureai.net/forum/viewtopic.php?t=4481
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' DATAFILES BROWSER
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Dim ESM_ESP_Path As String = My.Computer.FileSystem.CurrentDirectory + "\Data\"
Dim Plugins_txt_Path As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
Dim SaveDatafiles As String
Dim DataFileCounter As Integer = 0
Dim CheckData As Byte
Dim b As Integer = 0
Dim x As Integer = 0
Dim y As Integer = 0
'Click Data Files Accept Button
Private Sub SpieldateienBackButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPluginDataAccecpt.Click
My.Computer.Audio.Play(My.Resources.SoundDataFiles01, AudioPlayMode.Background)
ButtonStartNehrim.Visible = True
ListIndex.Enabled = False
ButtonListDown.Enabled = False
ButtonListUp.Enabled = False
CheckboxSpieldateien.Visible = False
ButtonPluginDataAccecpt.Visible = False
ButtonListDown.Visible = False
ButtonListUp.Visible = False
ListIndex.Visible = False
b = 0
Dim listelems As Integer
listelems = 0
Dim SaveDatafiles As System.IO.StreamWriter = New StreamWriter(Plugins_txt_Path + "\Oblivion\Plugins.txt")
SaveDatafiles.WriteLine("# This file is used to tell Oblivion which data files to load.")
SaveDatafiles.WriteLine("# Use the ""data files"" option in the Oblivion launcher to choose which files")
SaveDatafiles.WriteLine("# you want. Please do not modify this file.")
SaveDatafiles.WriteLine("")
listelems = Me.CheckboxSpieldateien.Items.Count
Do While listelems > b
If (Me.CheckboxSpieldateien.GetItemChecked(b)) Then
SaveDatafiles.WriteLine(Me.CheckboxSpieldateien.Items(b))
End If
b = b + 1
Loop
b = 0
SaveDatafiles.Close()
Me.CheckboxSpieldateien.Items.Clear()
ESM_ESP_Path = ("")
End Sub
Dim ChangeEntry As String
'Click Data Files Button
Private Sub ButtonSpielDateien_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonPluginData.Click
My.Computer.Audio.Play(My.Resources.SoundDataFiles01, AudioPlayMode.Background)
If (My.Computer.FileSystem.DirectoryExists("Data\")) Then
ButtonStartNehrim.Visible = False
ButtonPluginDataAccecpt.Visible = True
CheckboxSpieldateien.Visible = True
CheckboxSpieldateien.ScrollAlwaysVisible = True
ButtonListDown.Visible = True
ButtonListUp.Visible = True
ListIndex.Visible = True
If (My.Computer.FileSystem.FileExists(Plugins_txt_Path + "\Oblivion\Plugins.txt")) Then 'Files in Plugins.txt
CheckData = 1
Else
Dim SaveDatafiles As System.IO.StreamWriter = New StreamWriter(Plugins_txt_Path + "\Oblivion\Plugins.txt")
SaveDatafiles.WriteLine("# This file is used to tell Oblivion which data files to load.")
SaveDatafiles.WriteLine("# Use the ""data files"" option in the Oblivion launcher to choose which files")
SaveDatafiles.WriteLine("# you want. Please do not modify this file.")
SaveDatafiles.WriteLine("")
SaveDatafiles.Close()
CheckData = 1
End If
Dim CurrentLine As String = 0
Dim PreDataFileCounter As Integer
PreDataFileCounter = 0
If (CheckData = 1) Then
Dim SaveDatafiles As System.IO.StreamReader = File.OpenText(Plugins_txt_Path + "\Oblivion\Plugins.txt")
CurrentLine = 0
Do Until (CurrentLine.Contains(".es") Or SaveDatafiles.Peek = -1)
PreDataFileCounter = PreDataFileCounter + 1
CurrentLine = SaveDatafiles.ReadLine()
Loop
If (CurrentLine.Contains(".es") = True) Then
PreDataFileCounter = PreDataFileCounter - 1
SaveDatafiles.Close()
CheckData = 2
Else
SaveDatafiles.Close()
CheckData = 2
End If
End If
If (CheckData = 2) Then
DataFileCounter = 0
Dim plugintxtliste(500) As String
Dim err As Integer
Dim SaveDatafiles As System.IO.StreamReader = File.OpenText(Plugins_txt_Path + "\Oblivion\Plugins.txt")
Do Until SaveDatafiles.EndOfStream
If (DataFileCounter < PreDataFileCounter) Then
SaveDatafiles.ReadLine()
DataFileCounter = DataFileCounter + 1
ElseIf (DataFileCounter >= PreDataFileCounter) Then
plugintxtliste(b) = SaveDatafiles.ReadLine
b = b + 1
End If
Loop
SaveDatafiles.Close()
y = b
ESM_ESP_Path = My.Computer.FileSystem.CurrentDirectory + "\Data\"
For Each Me.ESM_ESP_Path In My.Computer.FileSystem.GetFiles(ESM_ESP_Path, FileIO.SearchOption.SearchTopLevelOnly, "*.es*")
Do While x < y
If (0 = (String.Compare(plugintxtliste(x), IO.Path.GetFileName(ESM_ESP_Path)))) Then 'Listenelement = Element aus Plugins.txt
err = 1
End If
x = x + 1
Loop
If err = 1 Then
err = 0
Else
plugintxtliste(y) = IO.Path.GetFileName(ESM_ESP_Path) 'Neues Listenelement mit Index
y = y + 1
End If
x = 0
Next
Do While x < y
Me.CheckboxSpieldateien.Items.Add(plugintxtliste(x))
If x < b Then
Me.CheckboxSpieldateien.SetItemChecked(x, True)
End If
x = x + 1
Loop
x = 0
y = 0
b = 0
CheckData = 2
End If
Else
'MsgBox("Es kann kein Data-Verzeichnis gefunden werden.") No data directory can be found.
MsgBox(MsgNoDataFolderNote) ' No data directory can be found.
Exit Sub
End If
End Sub
'Show Index Number
Private Sub ListIndex_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckboxSpieldateien.SelectedIndexChanged
ListIndex.Enabled = True
ListIndex.Text = CheckboxSpieldateien.SelectedIndex
ButtonListDown.Enabled = True
ButtonListUp.Enabled = True
End Sub
'Click Data File Down Button
Private Sub ButtonListDown_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonListDown.Click
My.Computer.Audio.Play(My.Resources.SoundUpDown01, AudioPlayMode.Background)
With sender
Dim index As Integer = CheckboxSpieldateien.SelectedIndex
Dim check As Integer
If (CheckboxSpieldateien.SelectedIndex <> -1) Then
ButtonListDown.Enabled = True
ButtonListUp.Enabled = True
If index < CheckboxSpieldateien.Items.Count - 1 Then
Dim AktuellesItem As Object = CheckboxSpieldateien.SelectedItem
check = CheckboxSpieldateien.GetItemCheckState(index)
CheckboxSpieldateien.Items.RemoveAt(index)
CheckboxSpieldateien.Items.Insert(index + 1, AktuellesItem)
CheckboxSpieldateien.SelectedIndex = index + 1
If check = 1 Then
CheckboxSpieldateien.SetItemChecked(index + 1, True)
End If
End If
Else
Exit Sub
End If
End With
End Sub
'Click Data File Up Button
Private Sub ButtonListUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonListUp.Click
My.Computer.Audio.Play(My.Resources.SoundUpDown01, AudioPlayMode.Background)
With sender
Dim index As Integer = CheckboxSpieldateien.SelectedIndex
Dim check As Integer
If (CheckboxSpieldateien.SelectedIndex <> -1) Then
ButtonListDown.Enabled = True
ButtonListUp.Enabled = True
If index > 0 Then
Dim AktuellesItem As Object = CheckboxSpieldateien.SelectedItem
check = CheckboxSpieldateien.GetItemCheckState(index)
CheckboxSpieldateien.Items.RemoveAt(index)
CheckboxSpieldateien.Items.Insert(index - 1, AktuellesItem)
CheckboxSpieldateien.SelectedIndex = index - 1
If check = 1 Then
CheckboxSpieldateien.SetItemChecked(index - 1, True)
End If
End If
Else
Exit Sub
End If
End With
End Sub