Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-07-2010, 00: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, 09: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, 13: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, 14: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, 16: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, 19: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 11:40. Motivo: Modifica codice
© Rocky è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
A 10 anni dalla prima rilevazione delle ...
Samsung annuncia il rilascio della One U...
La nuova MG4 spopola: già 26.000 ...
Monopattini pericolosi? Secondo una rice...
La Commissione Europea respinge le richi...
The Witcher: ecco le prime immagini dell...
Mitsubishi Electric verso l'acquisizione...
Pasticcio Tesla: nessuno vuole il Cybert...
Qualcomm, il nuovo SoC top di gamma &egr...
La memoria che cambierà l'AI: il ...
AI Overviews, un editore statunitense po...
AMD promette 1000 FPS con i Ryzen 9000X3...
L'IA italiana di Aton punta alla Silicon...
Amazon taglia i prezzi: upgrade da gamer...
Aruba Cloud semplifica e potenzia l'offe...
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: 18:50.


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