• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

hardcore

Ajuda [Gravar dados da textbox]

7 mensagens neste tópico

Olá pessoal, tenho aqui uma duvida.

Alguém pode dar-me um explo de como gravar um dado de uma textbox para um ficheiro? O que pretendo é o seguinte:

Imaginem que tenho o duas textboxs, uma chamada Morada e a outra chamada Nome. Na textbox nome inseri: Ana Maria Duarte e na textbox morada inseri: Rua Duarte Pacheco.

Depois de carregar num botão queria que ficasse guardado no ficheiro o seguinte:

Ana Maria Duarte***Rua Duarte Pacheco

Penso que tenho de usar o split mas não percebo muito bem o seu fincionamento ;)

Alguém consegue ajudar-me? Agradecia 

Obrigado  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok pessoal, consegui resolver o problema


FileStream t = new FileStream(@"d:\teste.txt", FileMode.Append,FileAccess.Write); 
            StreamWriter Txt = new System.IO.StreamWriter(t,Encoding.GetEncoding("ISO-8859-1"));

            Txt.WriteLine(textBoxNome.Text + "**" + textBoxMorada.Text + "**" + textBoxTelem.Text + "**" + textBoxEmail.Text);
            Txt.Close();

Agora surgiu-me outra dúvida mais complexa. Tenho os dados no ficheito teste.txt. Gostaria que quando fizesse uma listagem dos dados que tenho no ficheiro eles aparecessem odernados por ordem alfabética. Alguém tem a minima ideia de como se faz para poder implementar o código?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Les o ficheiro linha a linha e metes as strings num array. Depois podes usar o método Array.Sort e ficas com o array ordenado.

Não é a maneira mais eficiente, mas é a mais fácil.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado Betovsky.

Tenho aqui mais uma dúvida. Tenho o seguinte formulário:

semttulook7.th.jpg

Consigo gerar correctamente todos os dados do ficheiro para a list box. Como é que eu agora consigo passar os dados já separados para as respectivas caixas de texto? O objectivo era ao seleccionar o dado da Listbox ele aparecer já dividido nas textbox.

ListBoxListarContactos.Items.Clear();
            FileStream sr = new FileStream(@"c:\contactos.txt", FileMode.Open, FileAccess.Read);
            StreamReader Txt = new System.IO.StreamReader(sr, Encoding.GetEncoding("ISO-8859-1"));
            string texto;
            do
            {
                texto = Txt.ReadLine();
                if (texto != null)
                {
                    string[] s = texto.Split(new Char[] { '*' });
                    if (s[0].ToString().ToLower().Contains(TextBoxPesquisar.Text.ToString().ToLower()))
                    {
                        ListBoxListarContactos.Items.Add(texto.ToString());
                    }
                }
            }
            while (texto != null);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes usar entre 3 eventos.

  • SelectedIndexChanged
  • SelectedValueChanged
  • TextChanged

Depois só precisas de ir buscar o valor que está seleccionado. Se fizeres isso pela propriedade Text tens de fazer uma validação primeiro se está algum seleccionado se a String não for vazia.

Depois à string que obtens só precisas de evocar o método Split em que dizes para divir por "**".

Por exemplo:

String s = listBoxListarContactos.Text;

// Se não estiver nenhum selecionado limpa as textboxes..
if(String.IsNullOrEmpty(s)) {
  // Limpa as textbox
  return;
} 

String[] valores = s.Split(new String[] {"**"}, StringSplitOptions.None);
  
// Se quiseres validar que a string inserida na listbox está boa e não falta nenhum campo
if(valores.length < 5) {
  MessageBox.Show("Errro!!!");
  return;
}

textbox1.text = valores[0];
// etc...
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

vou tentar com o SelectedIndexChanged porque parece-me mais fácil. Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Betovsky obrigado. Funcionou muito bem  :cheesygrin:

Para quem estiver interessado no futuro, utilizei o seguinte código para saber o campo que estava seleccionado na listbox:

            List<string> items = new List<string>();

            for (i = 0; i < ListBoxListarContactos.SelectedItems.Count; i++)
            {
                items.Add(ListBoxListarContactos.SelectedItems[i].ToString());
            }
            string teste = "";
            
            for (int i = 0; i < items.Count; i++)
                teste = teste + items[i].ToString();

            //MessageBox.Show("teste1" + teste.ToString());

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora