Newsgroup: it.comp.lang.visual-basic
Titolo: solito quesito su passaggio variabili (ma ora è urgente)!!!

Ciao a tutti,
so che quello in oggetto è un argomento molto discusso, so anche che per
avere le idee chiare una volta per tutte occorrerebbe documentarsi su testi
ed in rete (in parte è quello che ho fatto...), il problema xò è ke devo
risolvere il tutto entro mercoledì 31/7...
Quindi:
ho costruito in progetto che carica un grosso numero di informazioni da un
file di testo mediante una opportuna function, all'interno di questa
function io salvo il contenuto di questo file in un Array che ho chiamato
DataArr (tale operazione riesce perfettamente); poichè xò il contenuto di
questo array mi serve in vari altri form all'interno del progetto ho bisogno
di accedere al suo contenuto in altri punti...
La soluzione che mi sembra + logica è quella di aggiungere un modulo Bas al
mio progetto e dichiarare all'interno l'array in questione mediante
l'istruzione Public DatiArr as Variant, in questo modo una volta caricato
l'array nella funzione, in qualunque punto del progetto dovrei accadere
tranquillamente alla variabile in questione...
Purtroppo xò quest'ultima fase non mi funziona, qualcuno saprebbe spiegarmi
dove sbaglio?
Di seguito riporto una parte del codice:
' Dichiarazione delli variabili
Public DataArr As Variant
Option Explicit
Dim Filename As String
Dim riemp, bb, i, j, pi, ui, c As Integer
Private Sub cmdOpen_Click()
    If LoadTextControl(CommonDialog1, Filename) Then
        MsgBox "Testo caricato " & Filename
    End If
End Sub
Function LoadTextControl(CD As CommonDialog, Filename As String) As Boolean
    Dim filenum, i, cont, conto, contind, trovato, indice As Integer
    Dim TextLine
    Dim DataArr() As Variant
    Dim temp As String
    On Error GoTo ExitNow
    CD.Filter = "All files (*.*)|*.*|Text files|*.txt"
    CD.FilterIndex = 2
    CD.DefaultExt = "txt"
    CD.Flags = cdlOFNHideReadOnly Or cdlOFNFileMustExist Or _
        cdlOFNNoReadOnlyReturn
    CD.DialogTitle = "Seleziona il file risorsa"
    CD.Filename = Filename
    ' Exit if user presses Cancel.
    CD.CancelError = True
    CD.ShowOpen
    Filename = CD.Filename
    ' Read the file's contents into the control.
    filenum = FreeFile()
    Open Filename For Input As #filenum
    i = 0
    Do While EOF(filenum) = False ' Ripete fino alla fine del file.
        Line Input #1, TextLine ' Read line into variable.
        'Debug.Print TextLine    ' Print to Debug window.
        i = i + 1
        ReDim Preserve DataArr(i)
        DataArr(i) = TextLine
    Loop
    ' Signal success.
    LoadTextControl = True
ExitNow:
Grazie di tutto e scusate la prolissità...
Ntonjfi

     Dim DataArr() As Variant
Ti dovrebbe bastare togliere quest'ultima istruzione.

 >    Dim DataArr() As Variant
Una nota, anzi due:
1) Perchè li dichiari come variant?
2) La prima è un variant che punta a un array (presumibilmente di variant, a
seconda del redim), la seconda è un array di variant.
Le due cose non si equivalgono e dovendo scegliere sceglierei la seconda
forma: so per certo che è un array e non un variant con dentro chissàcosa.
Ciao

     Do While EOF(filenum) = False ' Ripete fino alla fine del file.
 non so se e' un errore di battitura ma qui ci vuole:
     Do While NOT EOF(filenum) = False ' Ripete fino alla fine del file.
altrimenti non leggi na' mazza!
HTH
bye
R

Grazie a tutti,
ho risolto....
Ntonjfi