Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-07-2010, 01:47   #1
© Rocky
Member
 
L'Avatar di © Rocky
 
Iscritto dal: Feb 2006
Città: Mi sono perso nello spazio...
Messaggi: 119
[Visual Basic 6] Estrarre numeri da un array

Ciao a tutti
Sarà semplice, sarà il caldo o forse la vecchiaia ma, è un po' che ci sto provando
senza venire a capo di questo problema semplicissimo.
Ho un'Array con sei numeri, (ma potrebbero essere molti di più) esempio:

Array 1
9.13.14.15.16.17

vorrei trasferire nel secondo Array solo i numeri mancanti del primo, esempio:

Array 2
10.11.12

Un grosso grazie a chi mi vorrà aiutare
__________________
Il miglior dialogo è l'intesa
© Rocky è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2010, 10:44   #2
key2710
Senior Member
 
Iscritto dal: Nov 2007
Città: Catania
Messaggi: 840
Qualora gli array siano variant e sorted (come appare dal tuo esempio)

...
Dim IndexArrayFrom as integer
...
For IndexArrayFrom = 0 to UBound(vArrayFrom)
sbLoadMissedValue(vArrayFrom(IndexArrayFrom),vArrayFrom(IndexArrayFrom+1),vArrayTo
Next
...

private sub sbLoadMissedValue(byval myStart as integer, byval myEnd as integer, byref myArrayTo as variant)
dim myTempValue as integer
myTempValue = myStart + 1

while myTempValue < myEnd
myArrayTo.add myTempValue
myTempValue = myTempValue + 1
wend
end sub


In tutti i casi il concetto è riapplicabile anche su tipi di dato diversi.
Ciao.
__________________
Trattato positivamente con : daddyxx1, vale69, Ing_Peppe
key2710 è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2010, 14:52   #3
© Rocky
Member
 
L'Avatar di © Rocky
 
Iscritto dal: Feb 2006
Città: Mi sono perso nello spazio...
Messaggi: 119
@ Key2710

anzitutto grazie per avermi risposto e proposto una soluzione

Veramente la pensavo più semplice, ora proverò e ti farò sapere.
Attualmente l'Array è Integer ma, ho provato anche con Variant senza risultati attendibili.

Il mio procedimento:
Avevo creato un ciclo For-Next dal 9 al 17 e confrontato ogni numero dell'Array 1 con il numero del ciclo For scartando i numeri uguali e aggiungendo i numeri differenti all'Array 2.

L'idea poteva anche essere giusta ma, chissà perchè i conti non mi tornavano !!!

Ciao e ancora grazie
__________________
Il miglior dialogo è l'intesa
© Rocky è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2010, 15:19   #4
key2710
Senior Member
 
Iscritto dal: Nov 2007
Città: Catania
Messaggi: 840
Quote:
Originariamente inviato da © Rocky Guarda i messaggi
@ Key2710

anzitutto grazie per avermi risposto e proposto una soluzione

Veramente la pensavo più semplice, ora proverò e ti farò sapere.
Attualmente l'Array è Integer ma, ho provato anche con Variant senza risultati attendibili.

Il mio procedimento:
Avevo creato un ciclo For-Next dal 9 al 17 e confrontato ogni numero dell'Array 1 con il numero del ciclo For scartando i numeri uguali e aggiungendo i numeri differenti all'Array 2.

L'idea poteva anche essere giusta ma, chissà perchè i conti non mi tornavano !!!

Ciao e ancora grazie
Solo per il fatto che parli ci ciclo da 9 a 17 ... già va male. Le procedure si devono scrivere ottimizzate per usi multipli. Meno costanti infili, meglio è.

Inoltre a giudicare da quello che dici forse ho capito male io il problema.

Quello che ho scritto io esamina i numeri presenti dentro un array1, attendendosi l'array1 già sorted ed infila dentro un array2 i buchi presenti dentro l'array1.

Posta il codice da te sviluppato.
__________________
Trattato positivamente con : daddyxx1, vale69, Ing_Peppe
key2710 è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2010, 17:43   #5
© Rocky
Member
 
L'Avatar di © Rocky
 
Iscritto dal: Feb 2006
Città: Mi sono perso nello spazio...
Messaggi: 119
Ciao Key,

In modulo.bas
Codice:
Public Numeri(6, 90) As Integer
Public Pri(6) As Integer
Public Ult(6) As Integer
Public A(6) As Integer
Public Ci1(6) As Integer
Public Ci2(6) As Integer
Public Fram(6) As Variant
Public Cot(6) As Integer
Public Ava(6) As Integer
Routine Numeri mancanti
Codice:
   Pri(1) = Memo(1, 1) ' Primo numero dell'array Memo(1, 1), "9"
   Ult(1) = Memo(1, Con(1)) ' Ultimo numero dell'array Memo(1, 6), "17"
  ' Array Memo = 9.13.14.15.16.17 
Lista(1).Clear: Erase Cot()

  For Ci1(1) = Pri(1) To Ult(1) ' da 9 a 17
   Fram(1) = Ci1(1)
     Cot(1) = Cot(1) + 1
      A(1) = Memo(1, Cot(1))

    For Ci2(1) = Pri(1) To Ult(1)
       If A(1) <> Ci2(1) Then ' confronta i numeri dell'Array con il ciclo For
          Ava(1) = Ava(1) + 1 ' Se differente incrementa Ava(1)
              Numeri(1, Ava(1)) = Ci2(1) ' e lo salva in Numeri()
           Lista(1).AddItem Numeri(1, Ava(1)) ' Visualizza in una ListBox
        Else
      End If
   Next Ci2(1)
    Next Ci1(1)
La variabile Con(1) posta in "Ult(1) = Memo(1, Con(1)) "è 6, proviene da un'altra routine precedente e può assumere altri valori (1>90)

L'output è: 10.11.12.13.14.15.16.17.9.10.11.12.13.14.15.16.17.9.10 ecc.

Spero si possa capire il funzionamento in ogni caso se servono altri dettagli chiedi pure

Grazie Key
__________________
Il miglior dialogo è l'intesa
© Rocky è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2010, 20:04   #6
© Rocky
Member
 
L'Avatar di © Rocky
 
Iscritto dal: Feb 2006
Città: Mi sono perso nello spazio...
Messaggi: 119
Estrarre numeri mancanti da un'Array

A forza di tentarle tutte credo di averlo risolto così:

Dopo averlo ottimizzato un pochino, comunque l'output è:
10.11.12 come desideravo.

'Numeri mancanti
Codice:
' Dichiarazioni nel modulo bas
Public Memo2(6, 90) As Integer
Public MyArray(90) As Variant

' Nel Form
Lista(1).Clear
 Pri(1) = Memo(1, 1)      ' Primo numero della lista 1, "9" 
Ult(1) = Memo(1, Con(1)) ' Ultimo numero della lista 1, "17"
 
 Found = False: Erase Cont()
  For B1 = 1 To Con(1) ' La variabile Con() contiene il totale di numeri provenienti da una routine precedentemente elaborata.
    MyArray(B1) = Val(Memo(1, B1)) ' Trasferisce in MyArray() i dati di Memo()
  Next B1
 '
 For B2 = Pri(1) To Ult(1)
 Cerca = B2
   Found = InStr(1, vbNullChar & Join(MyArray, vbNullChar) & vbNullChar, _
    vbNullChar & Cerca & vbNullChar) > 0
      If Found = True Then
        Found = False
         Else
           Cont(1) = Cont(1) + 1
          Memo2(1, Cont(1)) = Cerca ' Popola Memo2() con i numeri mancanti
        Lista(1).AddItem Memo2(1, Cont(1)) ' Visualizza i numeri mancanti
      End If
 Next B2
Che te ne pare Key ?
__________________
Il miglior dialogo è l'intesa

Ultima modifica di © Rocky : 08-07-2010 alle 12:40. Motivo: Modifica codice
© Rocky è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
Secondo NVIDIA, i 660 miliardi di dollar...
Qualcomm punta sulla flessibilità...
Amazon sconta schede video, CPU e access...
Halo: Campaign Evolved, l'uscita del rem...
La rete elettrica europea sta limitando ...
Apple Magic Keyboard per iPad Pro 11'' i...
BYD punta a nuove tecnologie: batterie a...
Windows 11 porta il Bluetooth multi-disp...
iPhone 17e e non solo: Gurman svela le c...
Arrestato per omicidio, in lacrime ai po...
Vexilar, scopa elettrica da 65000Pa, 4,9...
Linux 7.0 sarà la prossima versio...
Windows 11: Copilot AI entra anche nella...
Apple apre CarPlay ai chatbot di terze p...
Horses: Santa Ragione afferma di essere ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:33.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v