Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
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: 2782
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: 6272
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 - Motherboard ASROCK B650 Pro RS - 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: 2782
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: 2782
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 X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Crisi delle memorie: ASUS torna al passa...
Le console next-generation potrebbero es...
Gemini cresce ancora: la quota di mercat...
Samsung sfida TSMC: la capacità produtti...
Iliad alza il prezzo della fibra ottica ...
Il prossimo low cost di POCO sarà il più...
The Elder Scrolls VI: ecco le ultime sul...
Ecco i saldi di fine anno Amazon, 34 off...
iPhone Fold: scorte limitate al lancio m...
OpenAI porterà la pubblicità in ChatGPT ...
TSMC aumenterà ancora i prezzi: nel 2026...
Marvel pubblica anche il secondo teaser ...
Nuovo accordo tra xAI e il Pentagono: l'...
La famiglia Xiaomi 17 sta per registrare...
Nuove auto elettriche che vedremo sul me...
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: 16:32.


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