Indice array VB.Net

di il
2 risposte

Indice array VB.Net

Salve a tutti, sto impazzendo con queste righe di codice; praticamente sto facendo una ricerca su file e quello che trova in base alla ricerca inserisce la sua posizione all'interno del file in un array dinamico e poi visualizza solo il primo(cioè quello in posizione v(0))
Solo che non so perchè mi da errore, ecco il codice:

Seek(1, 1)
While Not EOF(1)


FileGet(1, buffer)

'-------------------------------------------------------------'
If (txt_superficie.Text <> "") And (Val(txt_superficie.Text) <> buffer.superficie_casa) Then

Continue While
End If
'-------------------------------------------------------------'
If (Trim(txt_zona.Text) <> "") And (Trim(txt_zona.Text) <> Trim(buffer.zona_casa)) Then

Continue While
End If
'-------------------------------------------------------------'
If (txt_prezzo.Text <> "") And (Val(txt_prezzo.Text) <> buffer.costo_casa) Then

Continue While

End If
'-------------------------------------------------------------'

pos = Seek(1) - 1

ReDim v(t)
t = t + 1
v(x) = pos
x = x + 1
btn_avanti.Enabled = True


End While


Label6.Text = v(0)
FileGet(1, buffer, v(0)) 'qua mi da errore su v(0)




Una cosa particolare è che questo errore me lo da solo se quando non metto il preserve insieme alla redim

2 Risposte

  • Re: Indice array VB.Net

    Nessuno che mi può aiutare?
  • Re: Indice array VB.Net

    Ciao dna_programmer,
    Il primo consiglio è quello di non usare la redim/preserve che è un brutto ricordo dei tempi andati.

    Detto questo, se ometti la preserve il ridimensionamento dell' array non preserva i dati che ha precedentemente inserito, ovvero se tu inserisci dei dati e poi fai un redim senza il preserve l' array viane ricreato (con grande spreco di risorse) e i dati buttati via. Se invece metti il preserve i dati vengono ricopiati (con un ancor maggior spreco di risorse) nel nuovo array. Se fai il redim ad ogni elemento che inserisci lo spreco è massimo.

    L' errore ti capita perché non facendo il preserve, ciò che hai messo in v(0) è stato cancellato.
Devi accedere o registrarti per scrivere nel forum
2 risposte