Jump to content
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.

Share this post


Link to post
Share on other 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]

Share this post


Link to post
Share on other 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

Edited by Jean Freitas

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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

Edited by Jean Freitas

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Edited by Dagma Collela

Share this post


Link to post
Share on other 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á

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.