2d arrays opslaan

Status
Niet open voor verdere reacties.

bn2vs

Terugkerende gebruiker
Lid geworden
18 aug 2007
Berichten
1.705
Ik heb een programma met enkele 2d arrays die informatie bevatten over het (de)coderen van een text. Ik wil dat gebruikers zelf extra arrays kunnen toevoegen (ik weet hoe dat moet).

Probleem: hoe sla ik die arrays op?
ik kan het via settings doen als ik ze 2 split naar een sting (allowel ik niet weet hoe ik een gebruiker extra settings kan laten aanmaken)

zijn er geen betere methodes?
 
Hier heb je mn huidige module die 2 van die arrays bevat

PHP:
Module modCodecs

    Private Function codecConvertion(ByVal str As String, _
    ByVal toCode As Boolean, ByVal codec(,) As String) As String
        str = str.Trim.ToLower

        Dim a, b As Int16
        If toCode Then
            a = 0 : b = 1
        Else
            a = 1 : b = 0
        End If

        For x As Int16 = LBound(codec, 1) To UBound(codec, 1)
            str = str.Replace(codec(x, a), codec(x, b))
        Next
        Return str
    End Function

    Public Function leetConvertion(ByVal leetStr As String, ByVal toLeet As Boolean) As String
        Dim leetCodec(,) As String = { _
        {"leet", "31337"}, _
        {"at", "@"}, _
        {"love", "<3"}, _
        {"lol", "1O!z"}, _
        {"a", "4"}, _
        {"b", "8"}, _
        {"c", "["}, _
        {"e", "3"}, _
        {"h", "}{"}, _
        {"i", "|"}, _
        {"l", "1"}, _
        {"o", "0"}, _
        {"s", "5"}, _
        {"t", "7"}, _
        {"v", "\/"}, _
        {"x", "*"}, _
        {"v", "4"}, _
        {" ", " "}}
        Return codecConvertion(leetStr, toLeet, leetCodec)
    End Function

    Public Function morseConvertion(ByVal morseStr As String, ByVal toMorse As Boolean) As String
        Dim morseCodec(,) As String = { _
        {"?", "..-.../"}, _
        {"_", "..-..-/"}, _
        {".", ".-.-.-/"}, _
        {"@", ".--.-./"}, _
        {"'", ".----./"}, _
        {"-", "-....-/"}, _
        {";", "-.-.-./"}, _
        {"!", "-.-.--/"}, _
        {"(", "-.--../"}, _
        {")", "-.--.-/"}, _
        {",", "--..--/"}, _
        {":", "---.../"}, _
        {"0", "-----/"}, _
        {"9", "----./"}, _
        {"8", "---../"}, _
        {"7", "--.../"}, _
        {"6", "-..../"}, _
        {"5", "...../"}, _
        {"4", "....-/"}, _
        {"3", "...--/"}, _
        {"2", "..---/"}, _
        {"1", ".----/"}, _
        {"+", ".-.-./"}, _
        {"=", "-...-/"}, _
        {"ch", "----"}, _
        {"h", "..../"}, _
        {"v", "...-/"}, _
        {"f", "..-./"}, _
        {"u", "..--/"}, _
        {"l", ".-../"}, _
        {"a", ".-.-/"}, _
        {"p", ".--./"}, _
        {"j", ".---/"}, _
        {"b", "-.../"}, _
        {"x", "-..-/"}, _
        {"c", "-.-./"}, _
        {"y", "-.--/"}, _
        {"z", "--../"}, _
        {"q", "--.-/"}, _
        {"o", "---./"}, _
        {"s", ".../"}, _
        {"u", "..-/"}, _
        {"r", ".-./"}, _
        {"w", ".--/"}, _
        {"d", "-../"}, _
        {"k", "-.-/"}, _
        {"g", "--./"}, _
        {"o", "---/"}, _
        {"i", "../"}, _
        {"a", ".-/"}, _
        {"n", "-./"}, _
        {"m", "--/"}, _
        {"e", "./"}, _
        {"t", "-/"}, _
        {" ", "/"}}
        Return codecConvertion(morseStr, toMorse, morseCodec)
    End Function
End Module

Ik wil dus dat een gebruiker die kan aanpassen en er zelf nieuwe kan toevoegen. Die form moet er ong zo uit gaan zien (attachment).
 

Bijlagen

  • Clipboard02.gif
    Clipboard02.gif
    22,2 KB · Weergaven: 20
Je moet gewoon nadenken wat een duidelijke structuur zou moeten zijn voor de array die je wilt opslaan. En daar moet je dan een parser voor schrijven. Dat is eigenlijk het enige dat je hoeft te doen.

edit: aan bovenstaande heb je eigenlijk nog vrij weinig.

Je moet gewoon goed kijken naar de informatie die allemaal beschikbaar is, en wat je doel is.

leet -> 31337
at -> @
love -> <3

De twee dimensionale array uit jouw leet-converter zou je als volgt kunnen verdelen:

encrypt=31337, @, <3
decrypt=leet, at, love

Je hoeft dus alleen maar een duidelijke structuur te bedenken voor de informatie die je wilt opslaan, en daar dan een parser voor schrijven.
 
Laatst bewerkt:
Als ik het zo doe heb ik wel nog dit porbleem:

Het aantal arrays is variabel, en ook de naam ervan verschild. Hoe kan ik die dan declareren zonder late-binding?
 
Jouw probleem is toch geen probleem meer met een duidelijke structuur ? Als je weet hoe je de informatie opslaat, dan kun je hem later toch weer uitlezen.

<array>
<naam>blabla</naam>
<encrypt>blabla</encrypt>
<decrypt>blabla</decrypt>
</array>
<array>
[...]
</array>
 
Ja, daar heb ik geen probleem mee...

Ik heb een probleem met het gebruiken van die info die ik dan heb om er een array van te maken...
dus als ik een variabele arrayNaam heb, hoe maak ik dan een array met als naam de waarde van arrayNaam?
 
Ik heb een probleem met het gebruiken van die info die ik dan heb om er een array van te maken...
dus als ik een variabele arrayNaam heb, hoe maak ik dan een array met als naam de waarde van arrayNaam?

Je zult ervoor moeten zorgen dat jouw programma met die data overweg kan. Je zou bijvoorbeeld je eigen datatype kunnen maken om mee te werken.

Code:
Private Type datatype
  Naam As String
  Decrypt() As String
  Encrypt() As String
End Type

'en om dan met een 'datatype' te werken zou je iets als onderstaande kunnen doen:

private function udtConversion(udt as datatype, sTekstOmTeEncrypten as string) as string
 '...
end function




(De voorbeeld code is in VB6, jij werkt in .NET dus je zult even moeten kijken hoe het daar moet.)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan