AJUDA COM IMPORTACAO DE TXT PARA ACCESS

NAM4 28/12/2010 09:37:23
#360515
Olá pessoal do VBMania... primeiramente feliz natal pra todos e um grande ano novo que vem ai...

pessoal estou com uma dúvida,

eu tenho um arquivo texto, com varios valores, e estes preciso colocar dentro de um MDB, ou seja, access..

o arquivo texto segue dessa maneira:

14 1 [Ô]NaM4[Ô] 19 525 0 68 74 22 0 93 22 2 0 1 4 400 1400 10 2 160 12 6 0 0 0 0 0



ou seja ele não é delimitado por algum caractere...

como posso fazr essa carga desse TXT dentro do meu access...

realmente nao consegui um jeito...

eu fiz um código so que ele retorna a linha inteira, e nao valor por valor (nao fiz delimitado por isso aparece a linha inteira, mas como nao tem delimitador, ou nao sei se tem, ai nao consegui fazer)

OBS: SE POSSIVEL, SERIA MELHORA AINDA PRA MIM, SE CONSEGUISSE PEGAR APENAS O PRIMEIRO VALOR E O TERCEIRO, OU SEJA 14 E NAM4
POIS SO PRECISO DESTES 2 VALROES... O 14 QUE EH O NUMERO DELE E O NOME Q EH O TERCEIRO VALOR!!!

meu código:


#region MetodoParaLerLinhaArquivo
private void LinhaArquivo()
{
StreamReader re = File.OpenText(@[Ô].\Carga.txt[Ô]);
string input = null;
int ia = 0;

while ((input = re.ReadLine()) != null)
{
MessageBox.Show(input);
//MessageBox.Show(input);
//ia++;
}
//MessageBox.Show(ia.ToString());

re.Close();
}
#endregion


OBS: o código acima apenas busca as linhas e le uma a uma... eu n fiz o insert ainda, pq nao consegui dividir cada valo em uma variavel, ou um array

espero ajuda

obrigado a todos!
RODRIGOFERRO 28/12/2010 10:19:13
#360518
Resposta escolhida
Ok, entendi mas o espaçamento dos campos é sempre o mesmo?

posta umas 10 linhas ai pra gente ver... porque qualquer coisa a gente pega o valor pela posição que ele esta na string.
NAM4 28/12/2010 10:39:01
#360520
ola zerocal

sim é sempre a mesma... ou melhor nao necessariamente a mesma, mas eu posso fazer ficar a mesma entendeu?

minha ideia é criar um editor ou seja, esse arquivo texto so vai possuir os registros que ja existe em um outro soft, e eu quero pegar apenas o primeiro e o terceiro valor...

mas a resposa eh sim...o espaçamento é sempre o mesmo, olhe:

26 1 [Ô]Breno[Ô] 3 45 0 7 10 2 0 13 2 2 0 1 4 400 1800 10 2 120 10 6 0 0 0 0 0
27 1 [Ô]Adamastor[Ô] 5 80 0 13 17 4 0 23 4 3 0 1 4 400 1800 10 2 120 10 6 0 0 0 0 0
28 1 [Ô]Valter[Ô] 10 165 0 26 31 10 0 44 10 3 0 1 5 400 1600 10 2 140 10 6 0 0 0 0 0
33 1 [Ô]Elis[Ô] 8 120 0 19 23 8 0 33 8 3 0 1 5 400 1600 10 2 130 10 6 0 0 0 0 0
30 1 [Ô]Angela[Ô] 15 295 0 46 51 15 0 68 15 3 0 1 4 400 1600 10 2 150 12 6 0 0 0 0 0
29 1 [Ô]Bruno[Ô] 13 220 0 36 41 13 0 56 13 3 0 4 4 400 1600 10 2 140 12 6 0 0 0 0 0
31 1 [Ô]Agon[Ô] 16 340 0 51 57 16 0 74 16 2 0 1 4 400 1400 10 2 150 12 6 0 0 0 0 0
32 1 [Ô]Bernardo[Ô] 18 465 0 62 68 20 0 86 20 2 0 2 3 400 2200 10 2 160 12 6 0 0 0 0 0


a minha ideia é ao invez de criar outro txt somente com a primeira e a terceira linha, ja utilizar o arquivo existente, para poupar trabalho....

OBS: oq posso fazr é deixar todas as colunas com espaçamento de 1 TAB ou 2 TABS ficaria mais facil eu axo
abraços e vlw a resposta-
RODRIGOFERRO 28/12/2010 10:53:37
#360523
se for separados por TAB podes dar split desse jeito olha.


{

StreamReader reader = new StreamReader([Ô]D:\    este\\dados.txt[Ô]);

string oneLine = reader.ReadLine();
while ((oneLine != null))
{
string[] vals = oneLine.Split(new Char[] { [ô]    [ô] });

//Usando o array de strings
//Loop pelos dados obtidos
string s = null;
foreach (string s_loopVariable in vals)
{
s = s_loopVariable;
MessageBox.Show(s);
}

oneLine = reader.ReadLine();

}
}



FareBem...
NAM4 28/12/2010 11:21:38
#360526
ceto e para inserir?
RODRIGOFERRO 28/12/2010 11:37:31
#360529
Olha o que temos dentro da Variavel:



Para capturar os dados basta ler o array, dessa forma.


private void button1_Click(object sender, EventArgs e)
{

StreamReader reader = new StreamReader([Ô]D:\    este\\dados.txt[Ô]);

string oneLine = reader.ReadLine();
while ((oneLine != null))
{
string[] vals = oneLine.Split(new Char[] { [ô]    [ô] });

MessageBox.Show(vals[0]);
MessageBox.Show(vals[2]);

oneLine = reader.ReadLine();

}
}


Ali nas messagebox pegamos o valor conforme o array, e dai tu joga pra uma string e taca no teu insert.

Farebem
NAM4 28/12/2010 13:44:49
#360542
excelente meu caro zerocal,
vou fazer os testes

breve reporto valeu mesmo!!!
NAM4 29/12/2010 11:31:29
#360625
Reportando....


o codigo que vc mensionou zerocal, funcionou 200%

muto obrigado mesmo!


Abraços!
Tópico encerrado , respostas não são mais permitidas