Usuário com melhor resposta
Ajuda exportar txt largura fixa vba

Pergunta
-
Boa tarde pessoal, sou relativamente novo no Fórum já tirei algumas dúvidas e gostaria de agradecer a todos vocês.
Estou com um problema ao exportar uma tabela para TXT, com layout definido onde migrarei para outro sistema. Já fiz várias formatações e o único problema que me falta resolver é que não consigo exportar com largura fixa um campo que não tenha dados, por exemplo:
Tenho uma tabela em que o campo data não é obrigatório, logo em alguns registros este campo estará em branco e é justamente ai que causa a distorção no meu TXT. Ao exportar obtenho o seguinte resultado:
Data DataBaixa CodUnidade CodOrgao
]Resultado Obtido:
01102013 29102013 6 7
01102013 16102013 5 7
01102013 6 7
05102013 13102013 6 7
01102013 6 7
01102013 16102013 5 7
Resultado esperado:
01102013 29102013 6 7
01102013 16102013 5 7
01102013 ---------------- 6 7
05102013 13102013 6 7
01102013 --------------- 6 7
01102013 16102013 5 7
Conto com a colaboração de todos e espero poder resolver esse probleminha aqui.
Respostas
-
Eu acho que é mais ou meso assim:
o código seria mais ou menos assim para a geração
StreamWriter str = new StreamWriter(".\\txt.txt", true); str.WriteLine(string.Format("{0}{1}{2}{3}", Data.PadLeft(8, ' '), DataBaixa.PadLeft(12, ' '), CodigoUnidade.PadLeft(12, ' '), CodigoOrgao.PadLeft(12, ' '))); str.WriteLine(string.Format("{0}{1}{2}{3}", Data.PadLeft(8, ' '), "".PadLeft(12, ' '), CodigoUnidade.PadLeft(12, ' '), CodigoOrgao.PadLeft(12, ' '))); str.Flush(); str.Close();
ou seja, o PadLeft vai te jogar espaço ou qualquer outra caractere de sua escolha aonde não tem nada
Percebe que o primeiro é 8 que é a primeira data e o segundo foi 12 e assim por diante!
Acredito que vai te resolver!
Se sim credite ai os pontos e agradeço...
Fúlvio Cezar Canducci Dias- Sugerido como Resposta Fulvio Cezar Canducci Dias quarta-feira, 30 de outubro de 2013 02:34
- Marcado como Resposta CarlosAmaral quarta-feira, 30 de outubro de 2013 19:11
Todas as Respostas
-
Eu acho que é mais ou meso assim:
o código seria mais ou menos assim para a geração
StreamWriter str = new StreamWriter(".\\txt.txt", true); str.WriteLine(string.Format("{0}{1}{2}{3}", Data.PadLeft(8, ' '), DataBaixa.PadLeft(12, ' '), CodigoUnidade.PadLeft(12, ' '), CodigoOrgao.PadLeft(12, ' '))); str.WriteLine(string.Format("{0}{1}{2}{3}", Data.PadLeft(8, ' '), "".PadLeft(12, ' '), CodigoUnidade.PadLeft(12, ' '), CodigoOrgao.PadLeft(12, ' '))); str.Flush(); str.Close();
ou seja, o PadLeft vai te jogar espaço ou qualquer outra caractere de sua escolha aonde não tem nada
Percebe que o primeiro é 8 que é a primeira data e o segundo foi 12 e assim por diante!
Acredito que vai te resolver!
Se sim credite ai os pontos e agradeço...
Fúlvio Cezar Canducci Dias- Sugerido como Resposta Fulvio Cezar Canducci Dias quarta-feira, 30 de outubro de 2013 02:34
- Marcado como Resposta CarlosAmaral quarta-feira, 30 de outubro de 2013 19:11
-
-
-