Inquiridor
Verificação de item de checkedlistbox em um arquivo txt.

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?
Todas as Respostas
-
-
-
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() -
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?
-
-
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. -
-
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 -
Então, ainda nã deu certo.
Eu debuguei. Marquei no checkedlistbox o item "frase1", eu obtive o seguinte, neste momento:
if (linha.Equals(checkedListBox1.CheckedItems
))
linha = "frase1"
checkedListBox1.CheckedItems
= "System.Data.DataRowView"
-
-
Então, eu populo o checkedlistbox via banco de dados....
{
command.Connection = connection;
{
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"; }}
-
Olá, Kelvin...
Então ....consegui fazer o foreach q tava me matando...rsrsr
O errado estava assim:
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,
-