IMPRIMIR PARA ARQUIVO TEXTO COM TABULACAO

 Tópico anterior Próximo tópico Novo tópico

IMPRIMIR PARA ARQUIVO TEXTO COM TABULACAO

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#484862 - 09/10/2018 07:58:56

GUIGOR
ITABORAI
Cadast. em:Abril/2012


Bom dia a todos.

Seguinte estou desenvolvendo uma arquivo de integracao com um sistema em formato txt, sendo que esse arquivo ele e por tabulacao ou seja eu tenho que mandar imprimir os dados no inicio da coluna que e determinado, no anitgo vb6 eu usava o print #, tab(20)  entao comecava a imprimir na coluna 20 sendo que no vb.net  nao sei como proceder proucurei aqui no forum e nao achei nada alguem poderia me ajudar



Resposta escolhida #484863 - 09/10/2018 08:40:38

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Me lembro que há um bom tempo atrás, o colega DS2T desenvolveu uma classe que faz exatamente isso.
Basta criar uma classe pública com o nome "Imp" com esse código (está em C#, mas pode ser convertido):

public class Imp
{
    private List<object> listaParametros = new List<object>();

    public void NovaLinha(params object[] parametros)
    {
        listaParametros.Add(parametros);
    }

    public void Escrever(string caminho)
    {
        using (StreamWriter file = new StreamWriter(caminho))
        {
            foreach (object[] objetos in listaParametros)
            {
                file.WriteLine(RetornaString(objetos));
            }
        }
    }

    private string RetornaString(object[] arrayObjeto)
    {
        StringBuilder construtor = new StringBuilder();

        foreach (object objeto in arrayObjeto)
        {
            if (objeto.GetType() == typeof(string))
            {
                construtor.Append(Convert.ToString(objeto));
            }
            else
            {
                int tamanho = ((Tab)objeto).Tamanho;
                construtor.Append(new string(' ', tamanho - construtor.Length - 1));
            }
        }
        return construtor.ToString();
    }
}

class Tab
{
    public int Tamanho { get; set; }

    public Tab(int tamanho)
    {
        this.Tamanho = tamanho;
    }
}


Exemplo de uso:
Instanciando a classe
Imp printer = new Imp();


Para escrever a linha:
printer.NovaLinha(new Tab(1), "coluna1", new Tab(50), "coluna2", new Tab(80), "coluna3");


Para gravar o arquivo:
printer.Escrever("c:\\pasta\\arquivo.txt");


Já usei muitas vezes e funciona muito bem.
Espero ter ajudado.

____________________________________________________
Você sabe que alguém te ama não pelo que ele fala, mas pelo o que faz.
O amor não sobrevive de teorias.




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por GUIGOR em 12/10/2018 23:02:24