[Gambas-user] Sorting 2D arrays
Fabien Bodard
gambas.fr at gmail.com
Wed Aug 26 09:20:18 CEST 2020
Le mer. 26 août 2020 à 08:33, John Rose <john.aaron.rose at mailbox.org> a
écrit :
> All the discussions on this topic have gone way over my knowledge &
> understanding, particularly the discussions on Class. I was wrong about
> Gianluigi's solution (on 24/08/2020, 08:43 digest for
> DinamixMatrixExample project from the farm) not working. Apologies,
> Gianluigi, for doubting you. Once I understood it, I adapted it slightly
> for the key on my 2D array and it worked. I doubt that anyone is
> interested now, but here is my adapted code for the Global variable
> aEpisodeData (defined as Private aEpisodeData As New String[][]):
>
> Procedure SortEpisodeData()' Sort by Series Name & Episode Name i.e.
> column 0
> Dim e, i, n As Integer
> Dim aSort, aOriginal As New String[]
> ' Fills the array of the key to sort
> For e = 0 To aEpisodeData.Max
> aOriginal.Push(aEpisodeData[e][0])
> Next
> ' Copy the data in the sorting array, then sort
> aSort = aOriginal.Copy()
> aSort.Sort()
> ' Find with "Find" the values to be sorted and' with
> ' "swap" swaps reversing them
> For e = 0 To aSort.Max
> n = aOriginal.Find(aSort[e], 0, e)
> For i = 0 To aEpisodeData[e].Max
> Swap aEpisodeData[e][i], aEpisodeData[n][i]
> Next
> ' Clean and fill the array with current data
> aOriginal.Clear()
> For i = 0 To aEpisodeData.Max
> aOriginal.Push(aEpisodeData[i][0])
> Next
> Next
> End ' SortEpisodeData
>
> where aEpisodeData has previously been populated by:
> ' All the other variables below are strings previously given values
> ' Column 0 of aEpisodeData is the key of a row
> 'Columns 1-7 are the data for each row
> Inc iRows ' Number of rows in aEpisodeData defined as Integer
> aEpisodeData.Resize(iRows)
> aEpisodeData[iRows - 1] = New String[8]
> aEpisodeData[iRows - 1][0] = sSN30 & "|" & sEN30 ' SN30 & sEN30
> are the first 30 characters of sSeriesName & sEpisodeName respectively
> padded out with spaces
> aEpisodeData[iRows - 1][1] = sSeriesName
> aEpisodeData[iRows - 1][2] = sSeriesDescription
> aEpisodeData[iRows - 1][3] = sEpisodeName
> aEpisodeData[iRows - 1][4] = sEpisodeNumber
> aEpisodeData[iRows - 1][5] = sEpisodeDescription
> aEpisodeData[iRows - 1][6] = sEpisodeDatePublished
> aEpisodeData[iRows - 1][7] = sEpisodeIdentifier
>
😱
It can work ..but where the benefit ?
I will show you how we do that in the Gambas way.
>
> ----[ http://gambaswiki.org/wiki/doc/netiquette ]----
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gambas-basic.org/pipermail/user/attachments/20200826/5ce2c382/attachment.html>
More information about the User
mailing list