Discussione:
ordinare valori di un campo
(troppo vecchio per rispondere)
Akery
2024-01-11 07:59:29 UTC
Permalink
Buongiorno,

ho un campo di testo in cui ci sono dei valori separati da una virgola,
ho la necessità di mettere questi valori in ordine, c'è una funzione che
può risolvere il mio problema?

Grazie
Ammammata
2024-01-11 08:35:48 UTC
Permalink
Post by Akery
Buongiorno,
ho un campo di testo in cui ci sono dei valori separati da una virgola, ho la
necessità di mettere questi valori in ordine, c'è una funzione che può
risolvere il mio problema?
la funzione SPLIT divide una stringa in più sottostringhe, dato un
delimitatore e un paio di altri parametri

https://support.microsoft.com/en-us/office/split-function-876f246a-5144-44fa-889f-10078c7878f5

ti genera un array che puoi ordinare e successivamente rimettere
insieme
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
Ammammata
2024-01-11 09:52:55 UTC
Permalink
ti genera un array che puoi ordinare e successivamente rimettere insieme
con SQL uso prima XML PATH per accodare i dati e poi il comando STUFF
per togliere l'ultimo separatore
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
RobertoA
2024-01-11 08:36:36 UTC
Permalink
Post by Akery
Buongiorno,
ho un campo di testo in cui ci sono dei valori separati da una virgola,
ho la necessità di mettere questi valori in ordine, c'è una funzione che
può risolvere il mio problema?
Grazie
Non credo
Con la SPLIT ti separi i numeri
Ma poi per ordinarli devi ciclare, controllarli uno alla volta
O meglio, una funzione che realizzi quanto chiedi esistera' appena
l'avrai realizzata
Akery
2024-01-11 08:44:40 UTC
Permalink
Post by RobertoA
Post by Akery
Buongiorno,
ho un campo di testo in cui ci sono dei valori separati da una
virgola, ho la necessità di mettere questi valori in ordine, c'è una
funzione che può risolvere il mio problema?
Grazie
Non credo
Con la SPLIT ti separi i numeri
Ma poi per ordinarli devi ciclare, controllarli uno alla volta
O meglio, una funzione che realizzi quanto chiedi esistera' appena
l'avrai realizzata
immaginavo non fosse così semplice!

provo a creare l'array con split e ricostruire il campo
shado gps
2024-01-11 09:57:12 UTC
Permalink
Private Function srt(a As String) As String

Dim b() As String

b = Split(a, ";")

WizHook.SortStringArray b

srt = Join(b, ";")

End Function


Private Sub Comando0_Click()

MsgBox srt("ff;cc;aa;zz;qq")

End Sub
Akery
2024-01-11 10:41:49 UTC
Permalink
Post by shado gps
Private Function srt(a As String) As String
Dim b() As String
b = Split(a, ";")
WizHook.SortStringArray b
srt = Join(b, ";")
End Function
Private Sub Comando0_Click()
MsgBox srt("ff;cc;aa;zz;qq")
End Sub
wow! grazie
Ammammata
2024-01-11 10:43:46 UTC
Permalink
Post by shado gps
WizHook.SortStringArray b
facciamo luce:

https://isladogs.co.uk/wizhook/

https://nolongerset.com/wizhook/

e altro ancora che non riporto
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
Bruno Campanini
2024-01-11 18:26:51 UTC
Permalink
Post by Ammammata
Post by shado gps
WizHook.SortStringArray b
https://isladogs.co.uk/wizhook/
https://nolongerset.com/wizhook/
e altro ancora che non riporto
Troppo infantile questa... si insegnava alle "alimentari",
la chiamavano Bubble Sort:
==================================
Public Sub SortArray()
Dim S, i, j, Swap
S = Split("ff;cc;aa;zz;qq", ";")

For i = LBound(S) To UBound(S) - 1
For j = i + 1 To UBound(S)
If S(i) > S(j) Then
Swap = S(j): S(j) = S(i): S(i) = Swap
End If
Next
Next

End Sub
================================

Bruno
Ammammata
2024-01-12 07:15:42 UTC
Permalink
Post by Bruno Campanini
Bubble Sort
molto semplice e buono se i dati non sono tanti, come nel caso dell'OP

ricordo che una delle prime versioni del Qbasic (incluso inel MSDOS)
proponeva come demo 3 o 4 algoritmi di ordinamento diversi, mettendone
a confronto le prestazioni

c'era anche lo heap-sort, ma non ho ancora capito come gestirlo :)
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
Bruno Campanini
2024-01-12 09:25:36 UTC
Permalink
Post by Ammammata
Post by Bruno Campanini
Bubble Sort
molto semplice e buono se i dati non sono tanti, come nel caso dell'OP
ricordo che una delle prime versioni del Qbasic (incluso inel MSDOS)
proponeva come demo 3 o 4 algoritmi di ordinamento diversi, mettendone a
confronto le prestazioni
c'era anche lo heap-sort, ma non ho ancora capito come gestirlo :)
Col Quick Basic 4.5 usavo Shell-Metzner Sort.
Le prove comparative che feci allora lo davano molto più veloce
del Bubble Sort (che è il sistema naturale e quindi il più
semplice) mi pare sui 30-40 elementi da ordinare.
Voglio rifare tali prove su qualche migliaio di casi in
Excel-Access.
Sicuramente il più veloce in assoluto è l'SQL, non ho dubbi.

Bruno
Ammammata
2024-01-12 09:56:29 UTC
Permalink
Post by Bruno Campanini
Sicuramente il più veloce in assoluto è l'SQL, non ho dubbi.
ti piace vincere facile :)
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
Continua a leggere su narkive:
Loading...