DUVIDA COM ARRAYS - III

USUARIO.EXCLUIDOS 05/07/2004 18:57:13
#32365
Eis o codigo:

Dim Linha(1 To 1200)
Dim iARQ As Integer
iARQ = FreeFile

Path = App.Path & "\Mapa" & Nummap & "\Mapa" & Nummap & "C" & Numcam & ".map"

Open Path For Input As iARQ
For i = 1 To 1200
Line Input #iARQ, Linha(i)
Next

' Assimilando valores lido em uma variavel temporaria 1 - 1200
Data1 = Split(Linha(1), "#")

Bom, deixe me explicar:
Tenho um arquivo texto que possue 1200 linhas...
CADA linha possui 1600 colunas

Vamos ao eu preciso...
Preciso saber se existe uma forma, de no line input, eu ja assimiliar a linha e a coluna sem precisar passar para uma variavel temporaria e depois pra array bi-dimensional...

Esta mais ou menos assim hoje:

Line Input #iARQ, Linha(i)
Data1 = Split(Linha(1), "#")

For i = 1 To 1600
Matriz_LC(1, i) = Data(b)
b = b + 1
Next

Oque esta acontecendo: A variavel linha recebe 1 linha até ler as 1200 linhas, logo a variavel linha é uma array 1 to 1200

A variavel Data1 recebe dividindo por colunas o valor da variavel Linha(1)
Após isso a Matriz (array bidimensional) quebra a array data e encaixa os valores nas colunas...

O Código funciona? Sim funciona... mas terei que escrever na MÃO 2.400 linhas para conseguir ter os valores nos seus devidos lugares, exemplo:

Data1 = Split(Linha(1), "#")
Data2 = Split(Linha(2), "#")
Data3 = Split(Linha(3), "#")
Data4 = Split(Linha(4), "#")
...

For i = 1 To 1600
Matriz_LC(1, i) = Data1(b)
Matriz_LC(2, i) = Data2(b)
Matriz_LC(3, i) = Data3(b)
Matriz_LC(4, i) = Data4(b)
....
b = b + 1
Next

Sem contar o impecilio de que quando se da split a variavel data inicia a captura de dados no control data(0) por isso o b = b +1

Alguem tem alguma Solução?
Flavio? eheh

Agradeço antecipadamente.
Cheers
USUARIO.EXCLUIDOS 06/07/2004 09:00:21
#32421
Resposta escolhida
Não sei se vai te ajudar, mas quando eu abro um arquivo texto faço assim:

intNume = FreeFile
Open "C:\ArqTexto.Txt" For Input As #intNume
Do While Not EOF(IntNume)
Line Input #IntNume, strLinha
...
Loop
Close #intNume

Desse jeito ele vai até o final do arquivo sem que eu precise dizer a quantidade de Linhas.
Se as colunas que vc diz são separadas por ","(vírgula), ele conta como uma nova linha, a não ser que faça assim:

Line Input #IntNume, strCol1, strCol2, strCol3, strCol4, ...

Espero ter ajudado

Qualquer dúvida Post

Te +[S56]
Tópico encerrado , respostas não são mais permitidas