Newsgroup: it.comp.lang.visual-basic
Titolo: Indice max di un array VB.NET 2010

I dati presente nel file csv, vengono caricati all'interno di una array. E' 
possibile sapere da quanti elementi � composto l'array per ogni riga del 
file csv?
Ogni riga del file csv, le celle con i dati sono variabili (la prima riga 
conterr�, ad esempio, 10 celle con i dati, la seconda riga. 8 celle ecc. 
ecc.)
Ciao nero23
---------------------------------------
Imports System.IO
Module Module1
Sub Main()
Dim FileNumber As String = FreeFile()
FileOpen(FileNumber, "D:\Report.csv", OpenMode.Input)  'carico il file csv
Do Until EOF(FileNumber)
Dim TxCsv As String = LineInput(FileNumber)
Dim miaArray() As String = Split(TxCsv, ";")  'Registro i dati dentro 
l'array 'miaArray
Loop
End Sub
End Module

 ecc.)
GetUpperBound
http://msdn.microsoft.com/en-us/library/system.array.getupperbound.aspx

 
http://msdn.microsoft.com/en-us/library/system.array.getupperbound.aspx
Tra l'altro mi pare che usi una sintassi molto poco .NET, ma VB6 riportata.
Se vuoi un consiglio vediti un po' di teoria prima se puoi.

 Se vuoi un consiglio vediti un po' di teoria prima se puoi.
Sono all'inizio.
Grazie per la risposta
Ciao 

 Ciao nero23
C'è la proprietà .Length del tuo array. Come dice anche Andrea[Work] fatti
un piccolo studio prima degli oggetti che usi sulla MSDN :)

 Se vuoi un consiglio vediti un po' di teoria prima se puoi.
Per curiositą, da cosa lo deduci?
Grazie
ciao 



 
Questo è il contenuto del file csv:
  A   B   C   D   E 
1 a1  b1
2 a2  b2  c2
3 a3  b3  c3  d3  e3
4 a4  b4  c4 
 
 
Console
.
WriteLine
(
dividi
.
GetUpperBound
(
0
)) mi restituisce sempre l'indice 2, mentre io mi aspettavo  1, 2, 4 e 2 (relativo ad ogni riga del file csv)
 
Perchè mi ripropone sempre l'indice della prima riga?
 
 
 
 
 
Imports
 
System
.
IO
Module
 
Module1
Sub
 
Main
()
Dim
 
leggi
 
As
 
New
 
StreamReader
(
"D:\Report.csv"
)
Dim
 
riga
 
As
 
String
Dim
 
dividi
() 
As
 
String
Do
 
While
 
leggi
.
Peek
() <> -
1
riga
 = 
leggi
.
ReadLine
()
dividi
 = 
Split
(
riga
, 
";"
)
Console
.
WriteLine
(
dividi
.
GetUpperBound
(
0
))
dividi
.
GetLowerBound
(
0
)
Loop
Console
.
ReadKey
()
leggi
.
Close
()
End
 
Sub
End
 
Module



 SubEnd Module
separi per il ";" che nel file csv proprio non c'è.
.m
-- 
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCTS
http://mvp.support.microsoft.com
blog @ 
http://milestone.topics.it
whynot [ at ] topics [ dot ] it

 Per curiosità, da cosa lo deduci?
Perchè sarebbe stata una sintassi più simile a questa:
http://www.vbforums.com/showthread.php?t=516118
E i comandi/funzioni che hai utilizzato credo siano riportate solo per
compatibilità dei porting da VB6, ma non sono del fwk.

Dopo aver tirato su la riga devi fare lo split in base al carattere 
separatore e a quel punto sai quanti sono gli elementi della singola riga.

> separi per il ";" che nel file csv proprio non c'è.
Ho capito il problema.
I dati li inserisco nel file xls e successivamente salvo in csv.
Analizzando il file csv, ho notato che il separatore utilizzato è ';' e non 
' ,' e, anche se la cella non contiene dati, aggiunge il separatore.
Per questo motivo, il codice mi propone lo stesso codice anche per l'array 
corta (in realtà, conta il separatore).
Provando con un file txt, funziona tutto.
Grazie 

 
http://www.vbforums.com/showthread.php?t=516118
L'ho dedotto successivamente.
Infatti, nell'esempio riportato dopo, ho utilizzato il codice "consone" al 
.NET
Grazie
nero23 

"Ok, risolto.
Grazie