Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kania

gerar txt colunado

Recommended Posts

Olá pessoal, gente estou precisando gerar um arquivo em TXT e colunado.

Estamos desenvolvendo um projeto aqui onde temos que enviar a empresa que cria so cartões no seguinte formato

0000 0000 0000 0000 GRUPO EAGLE DO BRASIL         Consultor      06/09 06/10
2215 7411 2132 1254 TUR BRASILIAM BIT             Consultor      09/09 09/10
6544 7844 3121 0022 INSDUSTRIA DE PLASTICOS BRPR  Consultor      07/09 07/10

estas informações vem do banco de dados MySql, pegar os dados e apresentar na tela j´esta sendo feito, a dificuldade esta em só gerar o TXT colunado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando for gerar o TXT concatene cada "coluna" com o CHR(9) ou mesmo com a " " (tabulação).

 

Gerar um TXT você já sabe?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para criar este arquivo txt e escrever nas linhas, procure por FSO, lá na seção laboratórios de scripts tem alguns exemplo, de uma procurada lá que você ira encontrar o material que esta procurando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessola consegui gerar o TXT belezinha, o que preciso agora é só fazer a adequação dos espaços, vejam, segundo os critérios que foi me solicitado eu tenho que deixar para o nome no TXT 30 caracteres no máximo, como posso fazer para que caso um nome tenha somente 14 caracteres por exemplo eu consiga preencher o restate dos 14 caracteres que faltam com espaço?

 

Sei que posso usar o len para saber quantos caracteres tem o nome, só não sei como depois de saber quantos caracteres tem preencher o que falta

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código que eu montei:

 

'############################################################
'AQUI EU GERO O TXT PARA ENVIAR A CARDNET GRIFFON PREMIUM
'############################################################

path_do_arquivo = "e:\home\grupoeagle\Web\iaki\CardNet\"
 
Const forReading = 1, forWriting = 2, forAppending = 8
Const TriDef = -2, TriTrue = -1, TriFalse = 0
 
Dia = Day(Date())
if Dia < 10 then Dia = "0" & Dia
Mes = Month(Date())
if mes < 10 then mes = "0" & mes
Ano = Year(Date())

''a linha abaixo gera o nome do arquivo de acordo com o dia. (todo dia tem que ser criado um arquivo novo)
nomedoarquivoG = "GriffonPremium" & "_" & ano & mes & dia &"_"& HOUR(time()) & MINUTE(TIME()) & SECOND(TIME())
arquivoG = path_do_arquivo & nomedoarquivoG & ".txt"
''a linha abaixo abre a instância com o objeto Scripting. FileSystemObject
Set ObjFSO = CreateObject("Scripting.FileSystemObject")

''abaixo, é feita a verificação da existência do arquivo procurado. Caso ele ainda não exista (o que ocorre 1 vez por dia, no primeiro acesso), ele é criado
If ObjFSO.FileExists(arquivoG) = false then
''abaixo, a linha que cria o arquivo TXT especificado
objFSO.CreateTextFile(arquivoG)
End If

'a linha abaixo abre o arquivo desejado. Lembre-se, ou ele já existe ou ele foi criado na rotina acima.
Set ObjFile = objFSO.GetFile(arquivoG)
''a linha abaixo diz o tipo de manipulação que será utilizada no arquivo TXT, no caso é para adicionar dados.
Set objStream = ObjFile.OpenAsTextStream(forAppending,TriDef)
 
''abaixo, são criadas algumas variáveis com valores que serão colocados no LOG (hora, IP, versão do Browser)
Hora = Time()
IpNum = Request.ServerVariables("REMOTE_ADDR")
BrowVer = Request.ServerVariables("HTTP_USER_AGENT")

'CONEXÃO COM O BANCO
Set RS = Server.CreateObject("adodb.recordset")
SQL = "select * from cartao_griffon_premium where Status = 'A'"
RS.Open SQL,Conn,3,3

do while not RS.eof
	
		'ATUALIZA AS INFORMAÇÕES
		Set Rs3 = server.createobject("adodb.connection")
		Rs3.open = conn
		RS3.execute"UPDATE cartao_griffon_premium set Status = 'G' where Id = '"&RS("Id")&"'"
		Set Rs3 = Nothing
	
	DataGeracaoMes = month(Rs("GeradoEm"))
	if DataGeracaoMes < 10 then DataGeracaoMes = "0" & DataGeracaoMes End IF
	DataGeracaoAno = year(Rs("GeradoEm"))
	DataGeracao = DataGeracaoMes&"/"&Right(DataGeracaoAno,2)
	
	DataVenceMes = month(Rs("ValidoAte"))
	if DataVenceMes < 10 then DataVenceMes = "0" & DataVenceMes End IF
	DataVenceAno = year(Rs("ValidoAte"))
	DataVence = DataVenceMes&"/"&Right(DataVenceAno,2)
	
	If RS("Qualificacao") = "CO" then
		Qualif = "Consultor      "
	Else
		Qualif = "Cliente        "
	End If

x = 1
x = x+1
''o comando WriteLine, abaixo, grava os dados no arquivo TXT especificado.
ObjStream.WriteLine Rs("BlocoUm")&" "&Rs("BlocoDois")&" "&Rs("BlocoTres")&" "&Rs("BlocoQuatro")&" "&Rs("Nome")&"  "&Qualif&"      "&DataGeracao&" "&DataVence
RS.movenext

''aqui vai dar um loop até acabar o arquivo e gravar campo por campo um por linha.
loop

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente eu montei a seguinte função, porem não esta dando certo na hora de gerar o txt, não da erro só não coloca a quantidade de caracteres que falta, vejam:

 

NumE = Rs2("Nome")

	Function CompletaE(strE,nE)
	
	if Len(strE) < n then
			For g = 0 to nE - Len(strE)
	  geraE = geraE & CHR(9)
			next
			geraE = strE & geraE
	else
			geraE = strE
	end if

Quando eu testo direto no navegador ela coloca os espaços, mas no TXT não, algém sabe onde esta o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

como você esta gravando no txt, verifique cmo esta sendo a gravacao , pois se no browser ele

coloca os espaços, mas no TXT não, esta tendo algum erro na gravacaun do txt no FSO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente eu montei a seguinte função, porem não esta dando certo na hora de gerar o txt, não da erro só não coloca a quantidade de caracteres que falta, vejam:

 

NumE = Rs2("Nome")

Function CompletaE(strE,nE)

if Len(strE) < n then
		For g = 0 to nE - Len(strE)
  geraE = geraE & CHR(9)
		next
		geraE = strE & geraE
else
		geraE = strE
end if

 

Quando eu testo direto no navegador ela coloca os espaços, mas no TXT não, algém sabe onde esta o erro?

Há alguns erros nessa função:

1º Está comparando com uma variável "n" e entra com "nE";

2º Está concatenando com uma tabulação e deveria ser com um espaço (" ") mesmo;

3º Para uma function retornar dados deve receber um valor internamente a ela, ou seja depois de seu End If coloque "CompletaE = geraE"

 

Faça essas correções e volte informando se funcionou ou não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.