'Examples on how to use Inline VB functions to parse a text file
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Data
Imports System.Drawing
Imports System.Diagnostics
Imports System.Windows.Forms
Imports System.Linq
Imports System.Xml.Linq
Imports System.Threading.Tasks
'These two may be needed for text parsing functions below, not normally listed in a new VB.net Inline Function action through VA
Imports System.Text
Imports System.Text.RegularExpressions
Public Class VAInline
'This area lets us pre-define variables (and their names) and datatype for use later
dim dataFinal as new list(of string) ()
dim contents() as string
dim entry() as string
'Example Func: If needed, before Main and after defines, you can define functions used inside Main (if needed)
function AddOne(ByVal num1 as integer) as integer
dim result as integer
if (not(num1 = 0))
result = num1 + 1
end if
AddOne = result
end function
Public Sub Main()
'This is where all our inline code goes
'Use of Function Example (from above):
dim number as integer = 1
dim number_added as integer = AddOne(number)
'following this example, the variable 'number_added' will now equal "number" plus 1
'RULE 1 for Inlines: check everything is valid before performing any operation (isNot null/Contains a thing/is not == "")
if VA.GetText("~text_file") IsNot nothing
'Split contents of text file into single lines separated by the newline
if VA.GetText("~text_file").Contains(vbNewLine)
contents = VA.GetText("~text_file").Split(new string() {Environment.NewLine},StringSplitOptions.None)
'In each line, isolate text to parse, check if already on list, set Text Variable to line
for each line as string in contents
'Check each line to be sure it is not already been processed / is not empty - This will loop through EACH line until done
if ((not(line = "")) and (not(dataFinal.Contains(line))))
'By using a list of strings we build at each line, we can avoid duplicates (if needed)
dataFinal.Add(line)
'EXAMPLE 1: SIMPLE ENTRY REPLACE
'You can transform and parse each line using Replace (if needed)
if (line.Contains("<"))
line = line.Replace("<", "")
end if
' ↑ The example above would replace any "<" characters in this line with nothing (no space, culled completely)
'You can split each line further into parts separated by a string/character of your choosing (if needed)
if (line.Contains("="))
entry = line.Split("=")
'NOTE: If you used a split, entry(0) is everything before the split, entry(1) is everything after the split
'EXAMPLE 2: SPLIT ENTRY REPLACE
'You can transform and parse each entry using Replace, removing unneeded symbols/syntax
if (entry(0).Contains("<"))
entry(0) = entry(0).Replace("<", "")
end if
' ↑ The example above would replace any "<" characters in entry(0) with nothing (no space, culled completely)
'EXAMPLE 2: REGEX ENTRY REPLACE
'You can even change or add text as needed in place of known existing symbols using RegEx
dim regex as Regex = new Regex("\d*\.\d*\.\d*\.\d*")
' ↓ example where you can define a variable name/data type while using it, as opposed to pre-defined above
dim match as Match = regex.Match(entry(0))
if (match.Success)
entry(0) = Regex.Replace(entry(0), "\d*\.\d*\.\d*\.\d*", "IP ADDRESS REDACTED")
end if
' ↑ The example above would replace anything matching the format of an IP address with the literal text in quotes, "IP ADDRESS REDACTED"
'When done, you can set it to a text variable for use elsewhere in VA
VA.SetText("~text_entry_final", entry(0).ToString())
'--OR-- if using Split, you can address one part of it via (0) or (1)
VA.SetText("~text_entry_final", entry(1).ToString())
end if
end if
'Loop Around to the next line in contents...
next
end if
end if
End Sub
End Class
Comments