Visual Basic 6

andremf

Membro
Boas!

Preciso de ajuda urgente.

Preciso de aceder a um ficheiro de texto por Visual Basic 6. Esse ficheiro contêm valores a que quero aceder através de uma matriz. Por exemplo, no ficheiro de texto tenho:

00001| 25 | 32 | 12 |
00002| 67 | 55 | 33 | 345 |
00003| 34 | 39 |
.
.
.
.
e assim sucessivamente.

Eu quero ter uma matriz W que por exemplo ao chamar W(2,1) me dé o valor 67 ou por exemplo W(1,3) me dé o valor 32. O delimitador é "|".

Fico à espera de respostas.

Obrigado!
 
Podes ser mais preciso? O ficheiro de texto que utilizo é um txt e não csv.

O que pretendo é passar os dados presentes no ficheiro para uma matriz para depois ser mais fácil ir buscar esses dados ao ficheiro através dessa matriz.


Volto a mostrar um exemplo da configuração do ficheiro txt:


00001| 25 | 32 | 12 |
00002| 67 | 55 | 33 | 345 |
00003| 34 | 39 |
.
.
.
.
00106| 45.76| 456 | 345 |

Se quiser ir buscar o valor 456 a uma matriz W faço o seguinte: W(106,3).
O delimitador é "|".

A 1ª coluna é equivalente ao número da linha mas também contam como dados do ficheiro. Se fizer por exemplo W(3,1) tenho "00003".
 
usa o split. Esta funçao retorna um vector. Vais fazendo isto para todas as linhas do ficheiro e vais agregando a uma matriz o vector, por exemplo.

Split Function


Description
Returns a zero-based, one-dimensional array containing a specified number of substrings.
Syntax
Split(expression[, delimiter[, count[, compare]]])
MSDN

Vê no msdn mais detalhes


BTW, a extençao é indiferente para os componentes. pode ser .csv, .txt, .qwerty, desde que o conteudo seja valido no formato csv, ta a andar. ;)
 
Podes-me mostrar como fazer isso.
Não sei como correr o ficheiro linha a linha e depois como agregar a uma matriz.

Obrigado pela atenção!
 
Estou a terntar ler o ficheiro txt mas não estou a conseguir le-lo correctamente.

Estou a usar a seguinte rotina:

Public Sub teste()

Dim ficheiro, variavel, variavel1 as string


ficheiro = "C:\teste.txt"

livre = freefile

Open ficheiro For Input as #livre

Do While Not EOF(1)

Input #livre, variavel

variavel1 = variavel & variavel

Loop
Close #livre


Text1.text = variavel 'para ver numa janela como é lido o ficheiro


End Sub



Para um ficheiro com os dados seguintes:
00001| 25 | 32 | 12 |
00002| 67 | 55 | 33 | 345 |
00003| 34 | 39 |


esta rotina apresenta em text1.text o seguinte:

125|32|12267|55|33|345|334|39|

Ou seja, apartir desta leitura já não é possivel fazer o split como pretendido porque anteriormente a leitura do ficheiro já não é correcta


Agradecia sugestões!
Obrigado pela atenção!!
 
Volto aqui a descrever mais pormenorizadamente o meu problema com a esperança que alguém me possa ajudar:

Gostava de saber como preencher uma matriz bidimensional de strings.

Tenho um ficheiro de texto com a seguinte configuração dos dados:

00001| 25 | 32 | 12 |
00002| 67 | 55 | 33 | 345 |
00003| 34 | 39 |


Gostava de criar uma matriz W(i,j) em que i fosse o número da linha do texto e j a coluna delimitada por "|". Por exemplo, W(2,3) = 55.

Tenho tentado ler o ficheiro linha a linha e fazer o split em cada linha, através do seguinte código:

livre =freefile
Open "c:\text.txt" for input as #livre

Do while not EOF(livre)

Line Input #livre, linha ' lé o ficheiro linha a linha
v() = Split(linha, "|")
n = n+1 ' vai contando o número de linhas

Loop

Agora eu gostava de ir preenchendo uma matriz com a ajuda de n que é o número da linha e de v(i) que é a coluna. Não sei como agregar as linhas com as colunas. Será que terei que fazer isso ainda dentro do ciclo Do antes do "Loop"? Como dimensiono essa matriz já que ela é flexivel porque por exemplo o número de colunas em cada linha pode ser diferente (no exemplo apresentado a linha 2 tem mais colunas que as linhas 1 e 3). E o número de linhas também é flexivel porque eu quero usar esta rotina para ler vários ficheiros e não têm todos o mesmo número de linhas.

Ajudem-me a encontrar a solução para o meu problema. Tenho alguma urgência.

Agradeço a todos que me possam ajudar

Obrigado pela atenção!
 
Back
Topo