carissimi «oregon» & «ranza!!!123» █
Ho seguito i vostri consiglii, nuovamente;
«ranza!!!123»
NON conosco il perchè ma, oltre ad una dimensione [533790688,4902912byte]
NON riesco a dichiarere la variabile; Se vuoi modifica K1 con un numero maggiore
codice:
rem dichiarazione vettore memoria
Const K1 As Long = (1048576000 * 0,50906246995)
Dim A(1 To K1) As Byte
MsgBox "è stato dichiarato il vettore", , Str(Round(K1 / 1024 / 1024,5)) + "MegaByte"
poi mi "appare" l'errore "memoria esaurita"......
«oregon»
per le l'API "GlobalAlloc" & "CopyMemory" non riesco a usarle DINAMICAMENTE...
Sono funzioni per la dichiarazione statica; (dimensioni costanti, predeterminate e non modificabile "in corsa")
Concludendo... Signori vi ringrazio ma ho trovato, una soluzione "valida"... la "REDIM"
codice:
Rem richiesta RAM
Const X As Long = 1048576000 'limite memoria a variabile
Dim J As Single
rem inserimento richiesta memoria
J = InputBox("inserire il numero di MegaByte {massimo 509Mb}")
j=j/100
rem dichiarazione memoria richiesta
ReDim B((X * J)) As Byte
MsgBox "memoria occupata",,str(j*100)
rem massima memoria per variabile
ReDim Preserve B((X * (0.50906246995 - J))) As Byte
MsgBox "memoria ridimensionata al massimo 533790688byte massimi",,str(0.50906246995 - J)*100)
rem chiusura programma
End
grazie ancora... alla prossima...