TEXTO EM MDB

CARINHENA 27/12/2004 16:38:38
#57197
Pessoal, eu tenho uma arquivo chamado "new.txt".
nele ha varios registros (atualizado pela net) dessa forma:
svchost,sim
svchost2,não
svchoster,não

E tenho um banco de dados acces cuja tabela se chama: "NovasAssinaturas" e dois campos na tabela :Assinatura e Tipo.
Como eu faço pra inserir os registros do arquivo de texo na tabela, sendo que os campos do texto separado por "," serão os campos da tabela?

Exemplo: q na tabela assinaturas sejam adicionadas:
Assinatura Tipo
svchost sim
svchost2 não
svchoster não

Alguem ja passou por isso e sabe como resolve-lo?
USUARIO.EXCLUIDOS 27/12/2004 19:20:49
#57216
Resposta escolhida
é simples. Primeiro você tem que pegar os registros do seu .txt, dividi-los (tomando a vírgula como divisor) e depois gravar cada pedaço no campo apropriado.

Para pegar os registros:

Open "C:\Teste.txt" for input as #1
do while not eof(1) 'loop pra pegar os registros até a última linha do seu txt
Input #1, coringa 'pego o registro e o armazeno na minha variável "coringa"
redim divide(2, 0) as string 'apaga o que tiver na matriz e a prepara pra receber strings em 3 colunas e uma linha
divide = split(coringa, ",") 'divide coringa em strings cujo separador é a vírgula, e as armazena na matriz (array) "divide"

Ainda dentro do loop, abra sua tabela para gravação dos registros da matriz "divide". Vamos supor que você usou a famosa variável "rs" pra consulta SQL que abriu sua tabela pra edição:

rs(0) = divide(0) 'a primeira string vai ser armazenada na primeira coluna da sua tabela, e assim por diante.
rs(1) = divide(1)
rs(2) = divide(2) 'um for-next cairia bem aqui...
loop
rs.close
Close #1

Lembrando que a matriz está armazenando strings. Se sua tabela tem valores sim/não (booleanos) seria interessante colocar um if dentro do loop pra pegar os "sim" e tranformá-los em "True" e os "não" em "False"
USUARIO.EXCLUIDOS 27/12/2004 16:14:21
#57268
Isso é que dá fazer as coisas na correria...

Puts! Coloquei o rs.close fora do loop! Não foi uma boa solução, essa de abrir e fechar o recordset a cada volta do loop. E pra piorar, ainda dimensionei a matriz ao contrário (linha no lugar da coluna). Pra encerrar o assunto, veja em


E desculpas aí pro Tio Max. Deve ter sido o Panetone.
USUARIO.EXCLUIDOS 27/12/2004 16:17:01
#57269
Puts! Que bagunça! O Host resolveu acertar a hora e a última mensagem saiu antes da primeira!!! E não saiu o link!!! De novo:
http://www.macoratti.net/dica16.htm
Tópico encerrado , respostas não são mais permitidas