Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5 introduce Dynamic Multi Frame Generation e MFG 6X, permettendo fino a cinque frame generati per ogni frame renderizzato. I test su Cyberpunk 2077 e 007 First Light mostrano forti incrementi di FPS e riduzione della latenza su RTX 5090 Laptop. Migliorano fluidità, stabilità e qualità visiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-06-2006, 14: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, 15: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 15:07.
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2006, 15: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, 15: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, 09: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, 11: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, 11: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, 13: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, 13:15   #9
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2790
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, 13: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, 13: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, 13:57   #12
Spike79
Senior Member
 
L'Avatar di Spike79
 
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6317
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, 14: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, 14: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, 14: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, 14:20   #16
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2790
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, 14: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, 14: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, 14:34   #19
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2790
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, 14: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 realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
AMD incassa un altro successo nell'AI: p...
AWS rende disponibile Graviton5: fino al...
Casa pulita in cambio dei dati: Shift ra...
La crisi delle memorie contiuerà:...
HONOR Magic 9: per il futuro top di gamm...
TIM incassa più di 1 miliardo di ...
Vivo Watch GT 2 arriva in Italia: uno sm...
Resident Evil Veronica copia Resident Ev...
Lo smartphone di Trump Mobile è d...
The Social Reckoning, la storia di Faceb...
FASTCloud Open Source: un cloud sovrano ...
AMD non lascia spazio a Intel: la top 15...
iPhone 17 torna protagonista su Amazon: ...
PowerToys si aggiorna alla versione 0.10...
La nuova Audi Q7 proietta le frecce sull...
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: 07:43.


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