Menu

Code Sample

geek96boolean10

Here are some code samples that demonstrate working DLLs that Yui can run. Keep in mind these are extremely rough and may still undergo change.

The programs I am providing are written in Visual Basic .NET and provide simple memory functions for Yui. These include writing, recalling, and forgetting information, and demonstrate the PROCESS and FUNCTION types of programs. They are all Class projects, built to DLL.

All three programs have been tested to work with the latest version of Yui. Example programs for Async programs are still to come.

Imports System.Xml
Imports System.IO
Imports System.Collections.Specialized
Imports System.Runtime.Serialization.Formatters.Binary

Public Class MEMORIZE

Public Shared log As New Specialized.StringCollection

Shared Function INSTRUCTIONS() As Specialized.OrderedDictionary
    Dim dictionary As New Specialized.OrderedDictionary
    dictionary.Add("NAME", "MEMORIZE")
    dictionary.Add("TYPE", "PROCESS")
    dictionary.Add("FOLDERNEEDED", "TRUE")
    dictionary.Add("TOTALREQUIREMENTS", 3) 'Requirements as arguments for the main Sub - in this case, MEMORIZE() has 3 arguments.
    dictionary.Add("the nickname for the phrase", "STRING")
    dictionary.Add("the phrase to memorize", "LONGSTRING")
    dictionary.Add("aliasUsed", "OPTIONALSTRING") 'MUST be the last entry in the arguments, as in MEMORIZE()
    Return dictionary
End Function

Shared Function ALIASES() As Array
    Dim alias1 As Array = {"REMEMBER"}
    Return alias1
End Function

Shared Function MEMORIZE(nickname As String, Optional phrase As String = "", Optional usedAlias As String = "") As Specialized.StringCollection
    'The StringCollection to return will include the following:
    '- Success/Failure as Boolean
    '- LOG information
    log.Clear()
    Dim success As Boolean
    Select Case usedAlias.ToLower
        Case ""
            success = memorize1(phrase, nickname)
        Case "remember"
            success = memorize1(phrase, nickname)
    End Select
    log.Insert(0, success.ToString)
    Return log
End Function

Shared Function memorize1(phrase As String, nickname As String) As Boolean
    Try
        log.Add("start working")
        Dim file As Specialized.StringDictionary
        log.Add("opening previous if any")
        file = deserialize()
        log.Add("memorizing")
        Try
            file.Add(nickname, phrase)
        Catch ex As Exception
            log.Add("previous entry exists!")
            Return False
        End Try
        log.Add("committing to memory")
        serialize(file)
        log.Add("done")
        Return True
    Catch ex As Exception
        log.Add("error:" & ex.Message)
        Return False
    End Try
End Function

Shared Sub serialize(file As Object)
    Dim binformatter As New BinaryFormatter
    Dim mstream As New MemoryStream
    Dim stream As New FileStream((CurDir() + "\PROGRAMS\MEMORIZE\MemorizedTopics.yui"), FileMode.OpenOrCreate)
    binformatter.Serialize(stream, file)
    stream.Close()
End Sub

Shared Function deserialize()
    Dim binformatter As New BinaryFormatter
    Dim mstream As New MemoryStream
    If IO.File.Exists(CurDir() + "\PROGRAMS\MEMORIZE\MemorizedTopics.yui") Then
        Dim stream As New FileStream((CurDir() + "\PROGRAMS\MEMORIZE\MemorizedTopics.yui"), FileMode.OpenOrCreate)
        Try
            Dim obj = binformatter.Deserialize(stream)
            stream.Close()
            Return obj
        Catch ex As Exception
            stream.Close()
            Return New Specialized.StringDictionary
        End Try
    Else
        IO.File.Create(CurDir() + "\PROGRAMS\MEMORIZE\MemorizedTopics.yui")
        Return New Specialized.StringDictionary
    End If
End Function

End Class

Imports System.Xml
Imports System.IO
Imports System.Collections.Specialized
Imports System.Runtime.Serialization.Formatters.Binary

Public Class RECALL 'meant to be paired with 'MEMORIZE'

Public Shared log As New Specialized.StringCollection

Shared Function INSTRUCTIONS() As Specialized.OrderedDictionary
    Dim dictionary As New Specialized.OrderedDictionary
    dictionary.Add("NAME", "RECALL")
    dictionary.Add("TYPE", "FUNCTION")
    dictionary.Add("FOLDERNEEDED", "FALSE")
    'dictionary.Add("DEPENDENCIES", {"MEMORIZE"})
    dictionary.Add("TOTALREQUIREMENTS", 2) 'Requirements as arguments for the main Sub - in this case, RECALL() has 3 arguments.
    dictionary.Add("the nickname you assigned", "STRING")
    dictionary.Add("aliasUsed", "OPTIONALSTRING") 'MUST be the last entry in the arguments, as in MEMORIZE()
    Return dictionary
End Function

Shared Function ALIASES() As Array
    Dim alias1 As Array = {"REMIND"}
    Return alias1
End Function

Shared Function RECALL(nickname As String, Optional usedAlias As String = "") As Specialized.StringCollection
    'The StringCollection to return will include the following:
    '- Success/Failure as Boolean
    '- Function returned VALUE information
    '- LOG data
    log.Clear()
    Dim value As String = recalling(nickname)
    Dim success As Boolean
    If value.StartsWith("true") Then
        success = True
    Else
        success = False
    End If
    Dim val As String = value.Substring(7)
    log.Insert(0, success.ToString)
    log.Insert(1, val)
    Return log
End Function

Shared Function recalling(nickname As String) As String
    Try
        log.Add("start working")
        Dim file As Specialized.StringDictionary
        log.Add("searching for obj")
        file = deserialize()
        If file.ContainsKey(nickname) Then
            log.Add(nickname & " found")
            Return ("true[&]" + file.Item(nickname))
        Else
            Return "fals[&]"
        End If
    Catch ex As Exception
        log.Add("error:" & ex.Message)
        Return "fals[&]"
    End Try
End Function

Shared Function deserialize()
    Dim binformatter As New BinaryFormatter
    Dim mstream As New MemoryStream
    If IO.File.Exists(CurDir() + "\PROGRAMS\MEMORIZE\MemorizedTopics.yui") Then
        Dim stream As New FileStream((CurDir() + "\PROGRAMS\MEMORIZE\MemorizedTopics.yui"), FileMode.OpenOrCreate)
        Try
            Dim obj = binformatter.Deserialize(stream)
            stream.Close()
            Return obj
        Catch ex As Exception
            stream.Close()
            Return New Specialized.StringDictionary
        End Try
    Else
        IO.File.Create(CurDir() + "\PROGRAMS\MEMORIZE\MemorizedTopics.yui")
        Return New Specialized.StringDictionary
    End If
End Function

Shared Sub serialize(file As Object)
    Dim binformatter As New BinaryFormatter
    Dim mstream As New MemoryStream
    Dim stream As New FileStream((CurDir() + "\PROGRAMS\MEMORIZE\MemorizedTopics.yui"), FileMode.OpenOrCreate)
    binformatter.Serialize(stream, file)
    stream.Close()
End Sub

End Class

Imports System.Xml
Imports System.IO
Imports System.Collections.Specialized
Imports System.Runtime.Serialization.Formatters.Binary

Public Class FORGET

Public Shared log As New Specialized.StringCollection

Shared Function INSTRUCTIONS() As Specialized.OrderedDictionary
    Dim dictionary As New Specialized.OrderedDictionary
    dictionary.Add("NAME", "MEMORIZE")
    dictionary.Add("TYPE", "PROCESS")
    dictionary.Add("FOLDERNEEDED", "FALSE")
    'dictionary.Add("DEPENDENCIES", {"MEMORIZE"})
    dictionary.Add("TOTALREQUIREMENTS", 2) 'Requirements as arguments for the main Sub - in this case, MEMORIZE() has 3 arguments.
    dictionary.Add("the nickname for the phrase", "STRING")
    dictionary.Add("aliasUsed", "OPTIONALSTRING") 'MUST be the last entry in the arguments, as in MEMORIZE()
    Return dictionary
End Function

Shared Function ALIASES() As Array
    Dim alias1 As Array = {""}
    Return alias1
End Function

Shared Function FORGET(nickname As String, Optional usedAlias As String = "") As Specialized.StringCollection
    'The StringCollection to return will include the following:
    '- Success/Failure as Boolean
    '- LOG information
    log.Clear()
    Dim success As Boolean
    success = forgetting(nickname)
    log.Insert(0, success.ToString)
    Return log
End Function

Shared Function forgetting(nickname As String) As Boolean
    Try
        log.Add("start working")
        Dim file As Specialized.StringDictionary
        log.Add("opening previous if any")
        file = deserialize()
        log.Add("forgetting")
        Try
            file.Remove(nickname)
        Catch ex As Exception
            log.Add("previous entry doesn't exist!")
            Return False
        End Try
        log.Add("committing to memory")
        serialize(file)
        log.Add("done")
        Return True
    Catch ex As Exception
        log.Add("error:" & ex.Message)
        Return False
    End Try
End Function

Shared Sub serialize(file As Object)
    Dim binformatter As New BinaryFormatter
    Dim mstream As New MemoryStream
    Dim stream As New FileStream((CurDir() + "\PROGRAMS\MEMORIZE\MemorizedTopics.yui"), FileMode.OpenOrCreate)
    binformatter.Serialize(stream, file)
    stream.Close()
End Sub

Shared Function deserialize()
    Dim binformatter As New BinaryFormatter
    Dim mstream As New MemoryStream
    If IO.File.Exists(CurDir() + "\PROGRAMS\MEMORIZE\MemorizedTopics.yui") Then
        Dim stream As New FileStream((CurDir() + "\PROGRAMS\MEMORIZE\MemorizedTopics.yui"), FileMode.OpenOrCreate)
        Try
            Dim obj = binformatter.Deserialize(stream)
            stream.Close()
            Return obj
        Catch ex As Exception
            stream.Close()
            Return New Specialized.StringDictionary
        End Try
    Else
        IO.File.Create(CurDir() + "\PROGRAMS\MEMORIZE\MemorizedTopics.yui")
        Return New Specialized.StringDictionary
    End If
End Function

End Class


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.