Daniel KR ha scritto:
poiché, si è vero vado a caso, o meglio vado a tentoni perché insomma mi piace anche provare
Non è il modo corretto di imparare un linguaggio, una libreria, un framework in generale, a meno che tu non abbia una esperienza tale da aver visto altre soluzioni analoghe e ti possa quindi permettere di "tentare la sorte" cercando di riprodurre tecniche o conoscenze già acquisite in altre occasioni per vedere se si applicano anche all'ambito che stai approfondendo.
Se così non è, ovviamente non potrai ottenere risultati buoni con questo tipo di approccio, e anche per chi è disposto ad aiutare non è particolarmente stimolante correggere codice scritto a caso senza alcun tipo di logica (o con una logica non riconoscibile).
Daniel KR ha scritto:
e come faccio ad assegnare una dimensione se è variabile?
Le soluzioni sono due: o sai già quale è la dimensione da assegnare, sebbene variabile, oppure utilizzi una struttura dati che non preveda di dover necessariamente stabilire la dimensione in anticipo, ad esempio una lista (di stringhe in questo caso, quindi
List<string>), in cui puoi inserire le righe una per una aumentando gradualmente le dimensioni del contenitore.
in questo caso come mi devo comportare? devo partire:
Dim Index As integer =1
oppure
Dim Index As integer
Il problema è che inizializzando a zero (che è il corretto indice di partenza) e incrementando di uno prima della lettura, vai a scrivere nell'elemento con posizione "1", ossia il secondo. Dovrai quindi adottare due strade: o parti da "-1" in modo da arrivare al valore corretto - "0" - al primo incremento della variabile, oppure incrementi la variabile indice *dopo* che hai acceduto all'elemento, quando l'indice vale ancora "0".
In realtà, se fai uso di una lista di stringhe (come suggerito prima), al termine della lettura ti basterà leggere la proprietà Count() della lista per sapere quanti elementi (ossia quante righe) hai letto dal file.
A meno che non sia per esercizio, sappi comunque che l'oggetto
StreamReader ti consente di leggere anche l'intero file (con il metodo
ReadAllText()) restituendoti una unica stringa, oppure di leggere tutte le righe suddivise già in base ai ritorni a capo (con
ReadAllLines()), che restituisce invece l'array delle righe di testo acquisite dal file.
A che serve la prima chiamata a ReadLine() se non assegni il testo a una variabile?
perché volevo che contasse quante righe ci sono in quel file
Quando esegui
ReadLine(), la riga viene letta e quindi ti posizioni alla riga successiva; con il codice che hai scritto quindi, la prima volta leggi una riga senza salvarla e incrementando il contatore, poi vai a leggere la riga successiva... in pratica, stai leggendo "una riga sì e una no" e al termine del ciclo avrai contato la metà delle righe che ci sono nel file.
ma poi, levami una curiosità: come fate a trovare le documentazione giuste? ogni volta che cerco è un incubo
Direi che l'uso di un motore di ricerca qualsiasi è fondamentale per trovare le cose che servono, giusto?
Alla peggio, basta scrivere il nome della classe/metodo/libreria su Google e fare clic su INVIO.