Objetivo: registrar uma informação num arquivo txt toda vez que o usuário acessar determinada página.
Como? Quero que a informação seja gravada em JSON.
A dificuldade:
Em situações em que precisa escrever um lote de dados em JSON é mais tranquilo porque todas as iterações ocorrem numa vez só.
Exemplo. Passar o resultado de um recordset. É só rodar o loop é pronto. Cria uma string e beleza.
Meu problema é que cada "iteração" ocorrerá quando o usuário acessar a página. Aí complica na hora de escrever o novo valor no arquivo txt porque já terá conteúdo lá.
Ilustrando.
Quando for o primeiro acesso à página será escrito isso no txt.
[{"cds":"05/10/2015 09:12:31"}]
Até aqui sem problema.
No segundo acesso será escrita nova informação no mesmo formato. O resultado será
[{"cds":"05/10/2015 09:12:31"}] [{"cds":"07/10/2015 10:25:31"}]
Então a coisa complica porque o resultado não será compatível com JSON.
Ainda que eu coloque uma vírgula para separar os arrays a coisa não funcionará.
Para ficar no formato certo a string deveria ser escrita assim
[[{"cds":"05/10/2015 09:12:31"}],[{"cds":"07/10/2015 10:25:31"}]]
Estou usando um FSO para cria o objeto que escreve no txt
Segue trecho...
trecho... Set ObjMyFile = CreateObject("Scripting.FileSystemObject") Set WriteMyData = ObjMyFile.OpenTextFile(LogFileDirectory & "\" & LogFileName,8,True) RowHeaderString = RowHeaderString & "[{""cds"":" & """" & Now & """" & "}," RowHeaderString = RowHeaderString & "{""cdu"":" & """490""" & "}," RowHeaderString = RowHeaderString & "{""cdi"":" & """165656""" &"}," RowHeaderString = RowHeaderString & "{""item"":" & """XPTO""" &"}," RowHeaderString = RowHeaderString & "{""data"":" & """" & Now & """" & "}]," WriteMyData.WriteLine(RowHeaderString)
Então peço ajuda aos colegas.
O que faço? Copio os dados antes, mesclo tudo e sobrescrevo o conteúdo?
Qual a saída?