Autore Topic: Riempire Matrice dinamica  (Letto 1623 volte)

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 919
    • Mostra profilo
Riempire Matrice dinamica
« il: 04 Agosto 2025, 22:26:54 »
Ciao raga
sono completamente arrugginito e mi serve una mano
devo caricare i codici dei clienti in una matrice dinamica ma devo evitare di fare doppioni.
con una query prendo i dati dal database
con una struttura if se il codice di quel cliente non è nella matrice lo inserisce se invece è presente passa oltre

mi sono completamente dimenticato come interrogare la matrice dinamica per vedere se quel codice è presente

Codice: [Seleziona]
Dim CodCli As New Integer[]
Dim sql As String
Dim MyRS As Result
Dim Nrec As Integer
Dim n As Integer

For n = 1 To Nrec 'inserire n. record
     
     'if se non è nella matrice aggiungere il codice cliente qui mi serve interrogare la matrice
     
     CodCli.Add(MyRS!idcliente)
     
   
     
     MyRS.MoveNext
   Next
« Ultima modifica: 04 Agosto 2025, 22:32:18 da dex »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.213
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Riempire Matrice dinamica
« Risposta #1 il: 04 Agosto 2025, 23:50:31 »
Userei il Metodo ".Find()" degli Oggetti Array.

   https://gambaswiki.org/wiki/comp/gb/integer[]/find?l=it
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 919
    • Mostra profilo
Re:Riempire Matrice dinamica
« Risposta #2 il: 04 Agosto 2025, 23:51:23 »
Grazie Vuott
 :2birre:

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.288
  • Tonno verde
    • Mostra profilo
Re:Riempire Matrice dinamica
« Risposta #3 il: 09 Agosto 2025, 17:37:02 »
Ho aspettato a rispondere per vedere se sulla ML (in realtà sul bugtracker dove, come mi accade spesso, ho indicato un bug che non era tale), Fabien Bodard mi indicava un metodo più veloce di ExistSorted.
Comunque rispetto a Find è decisamente più veloce circa 10 volte tanto.
Devi solo inserire il risultato tenendo conto dell'ordinamento, se tu non puoi ordinare i dati non puoi usarlo.
Ho fatto un test con SQLite che allego

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.213
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Riempire Matrice dinamica
« Risposta #4 il: 09 Agosto 2025, 19:01:24 »
Fabien Bodard mi indicava un metodo più veloce di ExistSorted.
...qual'è ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.288
  • Tonno verde
    • Mostra profilo
Re:Riempire Matrice dinamica
« Risposta #5 il: 09 Agosto 2025, 22:07:57 »
Fabien Bodard mi indicava un metodo più veloce di ExistSorted.
...qual'è ?

Ho aspettato perché aveva scritto questo: Not sure the ExistSorted be the best function in your case. Because of the time needed by sorted each added values. il che mi aveva fatto credere avesse un algoritmo migliore...
Alla mia richiesta di passarmelo, non ha più risposto, quindi suppongo fosse solo teoria.
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro