none
Verificação de item de checkedlistbox em um arquivo txt. RRS feed

  • Pergunta

  •  

    Olá, Pessoal!

     

    O meu problema é o seguinte:

     

    Tenho um Checkedlistbox que foi carregado com informações de uma coluna de uma tabela de um banco.

    Eu seleciono os ítens que eu quero no Checkedlistbox.

    O meu programa faz uma leitura de um arquivo txt e faz a leitura linha por linha.

    Eu terei agora que verificar se os itens checados estão no meu arquivo txt, ou seja, tenho que comparar a linha do meu arquivo com o texto do meu item checkado...

     

    É possível?

     

     

     

     

    quinta-feira, 2 de outubro de 2008 12:17

Todas as Respostas

  • é
    quinta-feira, 2 de outubro de 2008 12:44
  • Como é que faço essa verificação???

    quinta-feira, 2 de outubro de 2008 13:02
  • Basta vc carregar o arquivo, e ir comparando linha a linha.
    para isso coloque o arquivo na memoria, e utilizando um for passe pelo arquivo comparando a linha com o check box que vc quer.

    o exemplo abaixo carrega um arquivo de texto em uma variavel.


    Code Snippet



    objStreamReader = File.OpenText(FilePath)

    Dim contents as String = objStreamReader.ReadToEnd()

    txtTextFile.text = contents

    objStreamReader.Close()




    quinta-feira, 2 de outubro de 2008 13:08
  • O meu arquivo eu já tenho ele carregado...essa parte tá pronta...eu só não sei como montar o um for que passe pelo arquivo comparando a linha com o check box. Exite alguma propriedade text ou value do checkeditem, para eu referenciar na hora de comparar com a linha?

    quinta-feira, 2 de outubro de 2008 13:25
  • ah, eu estou usando c#...

    quinta-feira, 2 de outubro de 2008 13:26
  • A propriedade checkedListBox1.CheckedItems. te retorna as linhas que estão selecionadas.
    Você pode fazer o seguinte,
    faz um for nas linhas do arquivo, dentro do for vc verifica se esta linha está selecionada. utilizando o checkedListBox.checkeditems;

    qualquer coisa post ai...

    Se foi util marque como respondido.

    Estou procurando um meio mais rapido de fazer.



    quinta-feira, 2 de outubro de 2008 13:38
  • ok, vou tentar fazer aqui.

    quinta-feira, 2 de outubro de 2008 13:48
  • Code Snippet

    //leitura do arquivo texto que será carregado

    FileInfo caminhoArquivo = new FileInfo("C:\\Teste.txt");
    StreamReader arquivo = caminhoArquivo.OpenText();

    int contadorLinhas = 0;
    string linha = string.Empty;

    while ((linha = arquivo.ReadLine()) != null)
    {

    for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
    {
    if (linha.Equals(checkedListBox1.CheckedItems[i]))
    {
    MessageBox.Show(checkedListBox1.CheckedItems[i].ToString());
    }
    }
    }



    Segue ai um exemplo de como ficaria
    segunda-feira, 6 de outubro de 2008 18:39
  • Então, ainda nã deu certo.

     

    Eu debuguei. Marquei no checkedlistbox o item "frase1", eu obtive o seguinte, neste momento:

     

     

    if (linha.Equals(checkedListBox1.CheckedItemsIdea))

     

     

     

    linha = "frase1"

    checkedListBox1.CheckedItemsIdea = "System.Data.DataRowView"

    segunda-feira, 6 de outubro de 2008 20:21
  • mas tarde vou ver direitinho como fazer e te respondo

    só uma duvida como vc popula o checklistbox
    segunda-feira, 6 de outubro de 2008 20:34
  • Então, eu populo o checkedlistbox via banco de dados....

     

     

    using (SqlCommand command = new SqlCommand())

    {

    command.Connection = connection;

     

    // carrega e ajusta na tela os checkedlistbox conforme cada tipo de Server

     

    DataTable catalogoErro = new DataTable();

     

    if (rdbServerProcessor.Checked == true)

    {

    command.CommandText = "SELECT CE.DESCRICAO FROM CATALOGOERRO CE INNER JOIN PROGRAMACATALOGOERRO PCE ON PCE.IDCATALOGOERRO = CE.ID WHERE PCE.IDPROGRAMA = 3" +

    "ORDER BY CE.DESCRICAO";

    catalogoErro.Load(command.ExecuteReader());

    clbServerProcessor.DataSource = catalogoErro;

    clbServerProcessor.ValueMember = "Descricao";

    }

    }

    terça-feira, 7 de outubro de 2008 17:24
  • Olá, Kelvin...

     

    Então ....consegui fazer o foreach q tava me matando...rsrsr

     

     O errado estava assim:

     

    DataTable dtErrosSelecionados = new DataTable();

    dtErrosSelecionados.Columns.Add("Itens Selecionados");

    foreach (System.Data.DataRowView item in clbServerProcessor.CheckedItems)

    {

    dtErrosSelecionados.Rows.Add(item.ToString());

    MessageBox.Show(item.tostring);

    }

     

    Daí o MessageBox mostrava "System.Data.DataRowView".

     

    o correto é:

     

    DataTable dtErrosSelecionados = new DataTable();

    dtErrosSelecionados.Columns.Add("Itens Selecionados");

    foreach (System.Data.DataRowView item in clbServerProcessor.CheckedItems)

    {

    dtErrosSelecionados.Rows.Add(item.Row[0].ToString()

    MessageBox.Show(item.Row[0].ToString());

    }

     

    Vc viu só q detalhezinho q me ferrou por vários dias? rsrsrs tudo por causa de um .Row[0]

     

    Mas valeu, brigadão!!!

     

    Qq dúvida q surgir no programa eu posto aqui, ok???

     

     

    Att,

    segunda-feira, 13 de outubro de 2008 20:00
  • Ok...

    Precisando estamos ai
    segunda-feira, 13 de outubro de 2008 20:10