Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-06-2006, 15:58   #1
Joblack84
Member
 
Iscritto dal: Apr 2006
Messaggi: 194
VB6 array

come posso ottenere il numero di elemnti di un array?
Joblack84 è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2006, 16:01   #2
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Con il metodo Ubound(nomeArray)
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino

Ultima modifica di mynos79 : 24-06-2006 alle 16:07.
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2006, 16:10   #3
Joblack84
Member
 
Iscritto dal: Apr 2006
Messaggi: 194
Quote:
Originariamente inviato da mynos79
Con il metodo Ubound(nomeArray)
cosi mi da la lungezza dell'array no gli elementi che sono inseriti as esempio

dim nomearray(9) as integer

nomearray(0) = "var1"
nomearray(1) = "var2"


Ubound(nomearray) mi dara 9 e non 2 spero di essermi spiegato
Joblack84 è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2006, 16:19   #4
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Che sappia io non c'è un metodo che restituisca il numero effettivo di elementi presenti in un array (o almeno non lo ricordo).
Quelle volte che mi serve faccio un ciclo for con un contatore che incremento in base che la posizione sia diversa da "" (in caso di array di stringhe) o 0 (in caso di array numerici).
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2006, 10:44   #5
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Oppure puoi adattarti dinamicamente l' array in base a quanti oggetti devi inserirci ...
Ad esempio se hai un array di 2 elementi e devi inserirne un altro, puoi usare i comandi:
i = ubound(nomearray)
redim preserve nomearray(i+1)

così da ridimensionare l' array (redim) col numero di elementi che vuoi (in questo caso 1 in più di prima) e con la proprietà preserve mantieni gli elementi già presenti nelle loro posizioni.
In questo modo puoi sempre sfruttare il metodo uboud(nomearray) per sapere l' ultimo indice, senza dover fare ogni volta un ciclo for e contare fino a quando non trovi posizioni "" o 0 (ma anche così può non funzionare, nel caso avessi proprio un oggetto di quei valori).
Ho cercato nei vecchi manuali che usavo prima della certificazione ed in effetti consigliano l' uso del redim con o senza preserve (in base ai casi).
Nel .net è stata aggiunta un proprietà che indica anche il numero di oggetti effettivamente presenti.
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 12:20   #6
Stiwy.NET
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 611
Quote:
Originariamente inviato da mynos79
Nel .net è stata aggiunta un proprietà che indica anche il numero di oggetti effettivamente presenti.
Ahh si? E come si chiama?
Stiwy.NET è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 12:31   #7
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Ops, mi sono confuso con la proprietà Lenght del vb.net ... ho avuto un lapsus, non riporta il numero effettivo di elementi, ma semplicemente la dimensione totale dell' array (in pratica ubound + 1).
Chiedo venia per l' ultima frase errata
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 14:03   #8
Stiwy.NET
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 611
Quote:
Originariamente inviato da mynos79
Ops, mi sono confuso con la proprietà Lenght del vb.net ... ho avuto un lapsus, non riporta il numero effettivo di elementi, ma semplicemente la dimensione totale dell' array (in pratica ubound + 1).
Chiedo venia per l' ultima frase errata
Peccato, l'avrei trovata comoda
Stiwy.NET è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 14:15   #9
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
Ma se nell'array (dinamico) non c'è nulla come si fa? Se uso l'ubound mi da errore, non c'è un modo x sapere prima se c'è almeno un elemento nel vettore? A parte tenere un contatore..
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 14:17   #10
Stiwy.NET
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 611
Quote:
Originariamente inviato da wingman87
Ma se nell'array (dinamico) non c'è nulla come si fa? Se uso l'ubound mi da errore, non c'è un modo x sapere prima se c'è almeno un elemento nel vettore? A parte tenere un contatore..
If isnothing(vettore) then 'è vuoto...
else
ubound(vettore)
end if
Stiwy.NET è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 14:34   #11
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
No, per poter usare un array devi sempre e solo dichiararlo dicendogli anche quante posizioni deve avere.
Puoi cambiare poi la sua dimensione con l' istruzione redim, mentre se vuoi anche mantenere gli elementi che possiede, ci aggiungi la proprietà preserve.

Quando dichiari un array (dimensionato con un tot di elementi):
dim a(5) as integer
il vb lo inizializza già con tutti gli elementi a 0 (se array numerico) o a "" (se stringa) ... quindi ubound funzionerà sempre ... però non sai quanti elementi effettivi ci sono dentro ...
L' unica è costruirti una funzione apposita che te li calcola ...
Puoi usare un trucchetto, mettere come ultimo elemento dell' array un terminatore (* o un simbolo che non userai mai) ... così quando cicli, conti la posizione del terminatore ...
Purtroppo ... è così ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 14:57   #12
Spike79
Senior Member
 
L'Avatar di Spike79
 
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6385
Giusto oggi ho creato un array 'infinito'

Dim matrice() as String

Poi con un'istruzione Split l'ho popolata

Matrice = Split (variabile, "\")

dove variabile è così composta "C:\cartella\cartella2\cartella3"

Con UBOUND vedi quanti elementi di questa matrice hai popolato.
(praticamente mi ritorna 4, perchè ha gli elementi dallo 0 al 3 popolati).
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30@6000 - MoBo ASROCK B650 Pro RS - GPU Sapphire 6700XT 12Gb -NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO
Spike79 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 15:04   #13
Stiwy.NET
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 611
Quote:
Originariamente inviato da Spike79
Giusto oggi ho creato un array 'infinito'

Dim matrice() as String

Poi con un'istruzione Split l'ho popolata

Matrice = Split (variabile, "\")

dove variabile è così composta "C:\cartella\cartella2\cartella3"

Con UBOUND vedi quanti elementi di questa matrice hai popolato.
(praticamente mi ritorna 4, perchè ha gli elementi dallo 0 al 3 popolati).
e allora?
Stiwy.NET è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 15:04   #14
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
No, vedi sempre la grandezza dell' intero array (o meglio l' indice dell' ultimo elemento (popolato o no) dell' array) ...
Split è una funzione particolare che ridimensiona il vettore iniziale in base a quanti spezzoni vengono restituiti ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 15:10   #15
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Eh eh, io e Stiwy siamo sempre in sintonia
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 15:20   #16
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
Quote:
Originariamente inviato da Stiwy.NET
If isnothing(vettore) then 'è vuoto...
else
ubound(vettore)
end if
non mi funziona la funzione isnothing, dove l'hai presa?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 15:21   #17
Stiwy.NET
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 611
Quote:
Originariamente inviato da mynos79
Eh eh, io e Stiwy siamo sempre in sintonia
Probabilmente perchè entrambi lavoriamo con VB.NET... o simili...
Stiwy.NET è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 15:22   #18
Stiwy.NET
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 611
Quote:
Originariamente inviato da wingman87
non mi funziona la funzione isnothing, dove l'hai presa?
isnothing è di VB.NET... prova con isNull oppure a mettere
if vettore is nothing then
Stiwy.NET è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 15:34   #19
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
Non mi funziona nessuna delle due, può essere che sia perchè le sto usando con un array di record?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 15:44   #20
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Come ho spiegato nei primi post .. in vb6 quando si dichiara un array (con la dimensione), le varie posizioni vengono impostate coi valori "zero" del tipo di dato dell' array ...
Se è un array di numeri, vengono inizializzati a 0; se sono stringhe vengono inizializzati a "" ... lo stesso per array di altri tipi di dato ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Le vecchie fotocamere digitali compatte ...
La Cina potrebbe rinviare il ritorno del...
Verizon non è preoccupata della c...
RDNA 5 sulle APU AMD, ma non per tutti: ...
Marvell acquisisce Lumentum per 115 mili...
La febbre dei data center fa impennare i...
ECOVACS T90S OMNI crolla a 499€ su Amazo...
In Cina i camion elettrici hanno gi&agra...
Attacchi hacker ai supermercati in Europ...
I datacenter non piacciono? OpenAI prova...
Cupra Raval sfida BMW, Volvo e le altre:...
BYD supera per la prima volta le 300.000...
Crisi RAM, spunta un prezzo incredibile ...
Ginux, un nuovo kernel compatibile con L...
Gemini Notebook si aggiorna: arrivano i ...
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: 21:56.


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