Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arrays as UDTs
#27
Or this way:
Code: (Select All)
Type Menu
    As String MName, MList
    As Integer MlistCnt
End Type

M$ = "Fruits;Apple,Orange,Pear,Banana,Plum:" +_
"Veggies;Squash,Peas,Green Beans,Carrot,Celery:"+_
"Meats;Steak,Bacon,Chicken,Fish"

nM = StrCount(M$, ":") + 1
Dim foods(1 To nM) As Menu
For i = 1 To nM
    s$ = GetItem$(M$, ":", i)
    'Print s$
    foods(i).MName = GetItem$(s$, ";", 1)
    foods(i).MList = GetItem$(s$, ";", 2)
    nList = StrCount(foods(i).MList, ",") + 1
    Print i; ""; foods(i).MName; ":"
    For j = 1 To nList
        Print Space$(4); j; " "; GetItem$(foods(i).MList, ",", j)
    Next
    Print
Next
Input "enter: food type number, item number eg 2,4 for Veggies: Carrot"; c1, c2
Print " You chose: "; foods(c1).MName, GetItem$(foods(c1).MList, ",", c2)

Function GetItem$ (AString$, Delimiter$, Index As Long) ' alternate Item$() function
    'use: Function StrCount& (AString$, Char$ )
    'use: Function StrPlace& (AString$, Char$, Nth&)

    ReDim cnt As Long, p1 As Long, p2 As Long
    cnt = StrCount&(AString$, Delimiter$) + 1
    p1 = StrPlace&(AString$, Delimiter$, Index - 1)
    p2 = StrPlace&(AString$, Delimiter$, Index)
    If Index > cnt Or Index < 1 Then
        Exit Function ' beyond the limit of string
    ElseIf Index = 1 Then
        GetItem$ = Mid$(AString$, 1, p2 - 1)
    ElseIf Index = cnt Then
        GetItem$ = Mid$(AString$, p1 + Len(Delimiter$))
    Else 'between
        GetItem$ = Mid$(AString$, p1 + Len(Delimiter$), p2 - p1 - Len(Delimiter$))
    End If
End Function

Function StrCount& (AString$, S$) ' Count S$ in Astring$
    ReDim place As Long, cnt As Long, lenS As Long
    place = InStr(AString$, S$): lenS = Len(S$)
    While place
        cnt = cnt + 1
        place = InStr(place + lenS, AString$, S$)
    Wend
    StrCount& = cnt
End Function

Function StrPlace& (Astring$, S$, Nth As Long) ' Locate the place the Nth S$ is in Astring$
    ReDim place As Long, cnt As Long, lenS As Long
    place = InStr(Astring$, S$): lenS = Len(S$)
    While place
        cnt = cnt + 1
        If cnt = Nth Then StrPlace& = place: Exit Function
        place = InStr(place + lenS, Astring$, S$)
    Wend
End Function
  724  855  599  923  575  468  400  206  147  564  878  823  652  556 bxor cross forever
Reply


Messages In This Thread
Arrays as UDTs - by Pete - 02-01-2026, 11:42 PM
RE: Arrays as UDTs - by Pete - 02-02-2026, 05:33 AM
RE: Arrays as UDTs - by Pete - 02-02-2026, 08:55 PM
RE: Arrays as UDTs - by SMcNeill - 02-03-2026, 02:28 AM
RE: Arrays as UDTs - by Unseen Machine - 02-03-2026, 03:49 AM
RE: Arrays as UDTs - by Kernelpanic - 02-03-2026, 03:57 PM
RE: Arrays as UDTs - by Pete - 02-03-2026, 05:18 PM
RE: Arrays as UDTs - by SMcNeill - 02-03-2026, 06:09 PM
RE: Arrays as UDTs - by Pete - 02-03-2026, 08:41 PM
RE: Arrays as UDTs - by ahenry3068 - 02-03-2026, 08:47 PM
RE: Arrays as UDTs - by Unseen Machine - 02-03-2026, 07:29 PM
RE: Arrays as UDTs - by Pete - 02-03-2026, 09:15 PM
RE: Arrays as UDTs - by Unseen Machine - 02-03-2026, 09:23 PM
RE: Arrays as UDTs - by Unseen Machine - 02-03-2026, 09:47 PM
RE: Arrays as UDTs - by Pete - 02-03-2026, 10:01 PM
RE: Arrays as UDTs - by Unseen Machine - 02-03-2026, 11:16 PM
RE: Arrays as UDTs - by Pete - 02-03-2026, 11:24 PM
RE: Arrays as UDTs - by Pete - 02-03-2026, 11:27 PM
RE: Arrays as UDTs - by Pete - 02-04-2026, 01:15 AM
RE: Arrays as UDTs - by Unseen Machine - 02-04-2026, 02:05 AM
RE: Arrays as UDTs - by Pete - 02-04-2026, 06:43 AM
RE: Arrays as UDTs - by Unseen Machine - 02-04-2026, 03:40 AM
RE: Arrays as UDTs - by Unseen Machine - 02-04-2026, 07:10 AM
RE: Arrays as UDTs - by Pete - 02-04-2026, 05:07 PM
RE: Arrays as UDTs - by bplus - 02-06-2026, 12:47 AM
RE: Arrays as UDTs - by Pete - 02-06-2026, 02:43 AM
RE: Arrays as UDTs - by bplus - 02-06-2026, 04:31 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Arrays inside Types? Ikerkaz 7 169 Yesterday, 04:21 PM
Last Post: ahenry3068
  Preserving multi-dim arrays Pete 5 389 12-19-2025, 03:17 PM
Last Post: Dimster
  Array out of passing arrays... Pete 2 392 09-22-2025, 08:53 PM
Last Post: ahenry3068
  Arrays of record variables Kernelpanic 0 447 04-02-2024, 06:58 PM
Last Post: Kernelpanic

Forum Jump:


Users browsing this thread: 1 Guest(s)