Ir para conteúdo
Jean Freitas

capturar dados txt com arrays

Recommended Posts

Então cara, essa ordenação é um pouco mais complicada, acho que o mais simples seria você separar todos os C's e todos os D's em arrays separados, depois você cria um novo array que é do tamanho somado dos outros dois (Array de C + Array de D) e intercala eles.

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado por responder, já estava sem esperança de ajuda com isso...

 

então cara eu até pensei em fazer isso, mas o problema é que cada bloco I250 é um lançamento contábil e então devem ser amarrados sempre, ou seja, dentro do I250 sempre vai ter um C para cada D ou vice versa e não posso separa-los porque corro o risco de pegar valores diferentes quando for gerar...eu consigo ler eles todos como estão no txt (linha a linha, uma embaixo da outra) e jogo para o grid, só não estou conseguindo coloca-los lado a lado na hora de gerar.

Se pelo menos eu conseguisse criar um novo arquivo com os dados da lista (estão no grid) depois eu tentaria pegar desse outro arquivo, mas não estou conseguindo criar isso, o nosso amigo Dagma me explicou mas com datatable, eu estou usando list...tentei fazer desse jeito:

 

if (array[1] == "I250")
{
Teste teste = new Teste();
string[] linhaatual = linhas.Split('|');
teste.Conta = linhaatual[2];
teste.Valor = linhaatual[4];
teste.Historico = linhaatual[8];
listasulpave.Add(teste);
}
i++;
}
gridDados.DataSource = listateste;
string dadosnovos = @"c:\novapasta\dados.txt";
System.IO.TextWriter arquivo = System.IO.File.AppendText(dadosnovos);
arquivo.WriteLine(listasulpave);
arquivo.Close();
sr.Close();
}
}
mas a unica coisa que cria no arquivo é isso:
System.Collections.Generic.List`1[Gera.Teste]

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

obrigado por responder, já estava sem esperança de ajuda com isso...

 

então cara eu até pensei em fazer isso, mas o problema é que cada bloco I250 é um lançamento contábil e então devem ser amarrados sempre, ou seja, dentro do I250 sempre vai ter um C para cada D ou vice versa e não posso separa-los porque corro o risco de pegar valores diferentes quando for gerar...eu consigo ler eles todos como estão no txt (linha a linha, uma embaixo da outra) e jogo para o grid, só não estou conseguindo coloca-los lado a lado na hora de gerar.

Se pelo menos eu conseguisse criar um novo arquivo com os dados da lista (estão no grid) depois eu tentaria pegar desse outro arquivo, mas não estou conseguindo criar isso, o nosso amigo Dagma me explicou mas com datatable, eu estou usando list...tentei fazer desse jeito:

 

if (array[1] == "I250")
{
Teste teste = new Teste();
string[] linhaatual = linhas.Split('|');
teste.Conta = linhaatual[2];
teste.Valor = linhaatual[4];
teste.Historico = linhaatual[8];
listateste.Add(teste);
}
i++;
}
gridDados.DataSource = listateste;
string dadosnovos = @"c:\novapasta\dados.txt";
System.IO.TextWriter arquivo = System.IO.File.AppendText(dadosnovos);
arquivo.WriteLine(listasulpave);
arquivo.Close();
sr.Close();
}
}
mas a unica coisa que cria no arquivo é isso:
System.Collections.Generic.List`1[Gera.Teste]

 

como faço para alterar um texto que escrevi por engano aqui

Editado por Jean Freitas

Compartilhar este post


Link para o post
Compartilhar em outros sites

O list é um pouco mais complicado do que o array simples para se trabalhar. Tente usar os básicos que é mais simples, ou então o ArrayList.

 

Você tem algum modo de identificar quando um D é de um C ou vice-versa? através de algum ID?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O list é um pouco mais complicado do que o array simples para se trabalhar. Tente usar os básicos que é mais simples, ou então o ArrayList.

 

Você tem algum modo de identificar quando um D é de um C ou vice-versa? através de algum ID?

esse é o problema, não tenho nenhum identificador que dê pra usar.... a única coisa que diferencia é o C e D, além de estarem por blocos, todos os blocos I250 estão dentro de um bloco I200 que contém a data do lançamento...

 

 

como faço para editar o conteúdo dos posts... quero fazer uma alteração no que postei ontem, mas não consigo

 

obrigado

Editado por Jean Freitas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe um botão editar ao lado de "multicitação".

 

Então cara, não existe como você organizar tudo sem um id para cada... Se o array original já vem intercalado então o que basta é você colocar todos os C e D na ordem do laço que estaria tudo certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é dificil né... rsrsrs

 

então esse botão editar não habilita no post #22 por exemplo


O list é um pouco mais complicado do que o array simples para se trabalhar. Tente usar os básicos que é mais simples, ou então o ArrayList.

 

Você tem algum modo de identificar quando um D é de um C ou vice-versa? através de algum ID?

 

sem querer abusa da boa vontade em ajudar, poderia dar uma exemplo de como implementar o arraylist neste caso ou então array simples.

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

O array simples é uma matriz comum, que você já deve ter visto em programação, ela é mais dificil de organizar, o Arraylist é a mesma coisa, porém ela possui alguns métodos.

 

Creio que se você separar os C e D e depois ir intercalando acho que fica correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, você ja tentou, ao invez de voce fazer a sim!

 

  if (array[1] == "I250")
                    {
                        if (array[5] == "D" || array[5] == "C")
                    {
                     }                  

voce trocar por isso

if (array[1] == "I250")
                    {
                        if (array[5] == "D" )
                    {

                     } 
                         else
                           {
                                   if (array[5] == "C" )
                           {

                           }
                               
                 }             

Dai se array[1] == 1250, ele vai entrar no primeiro if, dai se a array[5] == D ou C ela vai entrar nos outros if, dai voce taria armazenando, eles cada uma numa array, dai você poderia escrever eles na sequencia.. que deseja.

Editado por Dagma Collela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que a solução do Dagma é válida, mas o problema é que se o array viesse desordenado ele continuaria desordenado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que a solução do Dagma é válida, mas o problema é que se o array viesse desordenado ele continuaria desordenado.

Exatamente, agradeço pela sua ajuda Dagma,mas o problema é quando não fica em sequencia... estou tentando outras alternativas pra ver no que dá

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa de fazer uma pergunta, ha quantidade de Credito, e a mesma para Debito/?

ou tem a possibilidade de ter mais dados sobre Debito do que Credito, ou vice-versa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

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