1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Visual Basic 6

Discussão em 'Programação' iniciada por andremf, 15 de Maio de 2008. (Respostas: 6; Visualizações: 1463)

  1. 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!
     
  2. MiguelMatos

    MiguelMatos Power Member

    Procura por "Microsoft Text Driver" e "CSV".
     
  3. 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".
     
  4. Armadillo

    Armadillo Folding Member

    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.

    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. ;)
     
  5. 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!
     
  6. 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!!
     
  7. 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!
     

Partilhar esta Página