Ir para conteúdo
Fórum Script Brasil
  • 0

For Each Em Arquivos


Andersonjb

Pergunta

E ai pessoal, olhem o seguinte código:

        Dim dt As New DataTable
        Dim texto As String
        Dim gravar As IO.StreamWriter

        gravar = IO.File.CreateText("C:\Tabela.tbl")

        dt = dgtabela.DataSource

        For Each linha As DataRow In dt.Rows
            For Each coluna As DataColumn In dt.Columns
                If linha(coluna) <> "" Then
                    texto = linha(coluna)
                    MsgBox(texto)
                    gravar.WriteLine(texto)
                End If
            Next
        Next
        gravar.Close()

Bem, meu objetivo com o For Each e retirar o texto da data Table e gravar em um arquivo comum. Só que o problema e que assim, digamos que eu tenha esses quatro caracteres:

a b c d

Bem, na hora da gravação, ou do laç, tanto faz, eu so condigo retirar esses caracteres:

a b c

Ou seja, eu não consigo retirar o ultimo caracter para gravação. Porque isso? Aonde eu estou errando, e na condição do if?

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0
há, mas não existe essa possibilidade, já que eu estou colocando apenas as letras a,b,c, certo?

Sim, então não existe essa possibilidade. Mas, pensei em outra coisa. A DataGrid só tem mesmo as colunas da DataTable? Ou seja, você não estaria acrescentando manualmente uma coluna na DataGrid, fora as existentes na DataTable?

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Não, não estou, estou ate escrevendo tudo na mesma linha na DataGrid... sad.gif

Mesmo assim, você escreveria tudo na mesma linha, porém a última coluna só estaria presente na DataGrid e não na DataTable.

Como você preenche a DataGrid? Você só cria uma DataTable e referencia ela na propriedade DataSource da DataGrid?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Gray, olha so que curioso, da uma olhadinha nesse código:

        Dim dt As New DataTable
        Dim linha As DataRow
        Dim coluna As DataColumn
        Dim texto As String

        dt = dgtabela.DataSource

        For Each linha In dt.Rows
            For Each coluna In dt.Columns
                texto = linha(coluna)
                If texto <> "" Then
                    MsgBox("ui")
                End If
            Next
        Next

Bem, se voce analisar, se tiver algum texto na DataGrid, ele vai mostrar a MessageBox, correto? laugh.gif ERRADO! ohmy.gif Esperimente colocar somente uma letra na DataGrid, ele não vai mostrar a MessageBox, mas se você colocar duas, ele mostra. Curioso, não? Sera a condição, erro do compilador? Voce tem alguma ideia? Muito curioso isso... ohmy.gif

Link para o comentário
Compartilhar em outros sites

  • 0
Gray, olha so que curioso, da uma olhadinha nesse código:

        Dim dt As New DataTable
        Dim linha As DataRow
        Dim coluna As DataColumn
        Dim texto As String

        dt = dgtabela.DataSource

        For Each linha In dt.Rows
            For Each coluna In dt.Columns
                texto = linha(coluna)
                If texto <> "" Then
                    MsgBox("ui")
                End If
            Next
        Next

Bem, se voce analisar, se tiver algum texto na DataGrid, ele vai mostrar a MessageBox, correto? laugh.gif ERRADO! ohmy.gif Esperimente colocar somente uma letra na DataGrid, ele não vai mostrar a MessageBox, mas se você colocar duas, ele mostra. Curioso, não? Sera a condição, erro do compilador? Voce tem alguma ideia? Muito curioso isso... ohmy.gif

Fiz esse teste aqui e funcionou perfeitamente. Você está utilizando isso em algum evento da própria DataGrid?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Engraçado, em um botão funciona, mas em um MainMenu não huh.gif ! Porque será?

Você não está executando isso imediatamente após digitar o último caracter está? Pode ser que entre a seleção da opção no menu e o fim da digitação na célula não esteja ocorrendo a atualização da DataTable.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...