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

Rapsten

mais um problema....

8 mensagens neste tópico

boa tarde!

agora tenho um problema aqui em procurar um nome k está dentro de um array, k por sua vez  está numa sortedlist...

classe principal:

class Associaçao
    {
        private SortedList socios;
        private string nome;
        private int numero_socio;

        //Construtor
        public Associaçao(string n)
        {
            nome = n;
            socios = new SortedList();
            numero_socio=0;
        }
        //Propriedade
        public int Numero_socio
        {
            set { numero_socio = value; }
            get { return numero_socio; }
        }
        //metodo
        
        public void Inserirsocios(int numerosocio, string nome, string morada, string localidade, int telefone, int ano, int mes, int dia)
        {
            Socios socio = new Socios(numerosocio, nome, morada, localidade, telefone, ano, mes, dia);
            socios.Add(numerosocio, socio);
            
        }
        public Socios consultarsocio(int ns)
        {
            return ((Socios)socios[ns]);
        }
        public string procurarnome()
        {
            string alo = "";
            string nome = ((Socios)socios[numero_socio]).Nome.ToString();
            alo = alo + nome;
            return alo;
        }
        public Socios procurarNome(string nm)
        {
            return ((Socios)socios[nm]);
        }

classe design

public partial class Procurarnome : Form
    {
        public Procurarnome()
        {
            InitializeComponent();
            textBox1.Enabled = false;
            Morada.Enabled = false;
            Localidade.Enabled = false;
            Telefone.Enabled = false;
            dateTimePicker1.Enabled = false;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            
            try
            {

                String.Equals(textBox2.Text,Program.associaçao.procurarnome());



                string nome = textBox2.Text;
                    Socios aux = Program.associaçao.procurarNome(nome);
                    textBox1.Text = aux.Numero_socio+"";
                    textBox1.Enabled = true;
                    Morada.Text = aux.Morada;
                    Morada.Enabled = true;
                    Localidade.Text = aux.Localidade;
                    Localidade.Enabled = true;
                    Telefone.Text = aux.Telefone + "";
                    Telefone.Enabled = true;
                    DateTime d = aux.DataNascimento;
                    dateTimePicker1.Value = d;
                    dateTimePicker1.Enabled = true;
                
               
            }
            catch (Exception)
            {
                MessageBox.Show("Sócio inexistente");
                    
            }
            
        }
            

este codigo n funciona!!!

sabem m dizer porquê?

n tem erro segundo o visual c#..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Penso que o problema é que estás a comparar strings com o operador == aqui:

while (textBox2.Text == Program.associaçao.procurarnome())

Experimenta:

textBox2.Text.Equals(Program.associacao.procurarnome())

ou

textBox2.Text.CompareTo(Program.associacao.procurarnome())

Não sei bem qual deles é. http://msdn.microsoft.com/en-us/library/fbh501kz(VS.80).aspx

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que fazes não tem muito sentido.

        public string procurarnome()
        {
            string alo = "";
            string nome = ((Socios)socios[numero_socio]).Nome.ToString();
            alo = alo + nome;
            return alo;
        }

Aqui o teu nome irá ser sempre ser o do sócio com o número 0. É isso o pretendido?

Também a declaração da variável alo não faz qualquer sentido. Aliás podias ter isso perfeitamente sem uso de variáveis.

public String procurarnome() {
   // Presumo que Nome seja já uma String
   return ((Socios) socios[numero_socio]).Nome; 
}


        public Socios procurarNome(string nm)
        {
            return ((Socios)socios[nm]);
        }

Isto também não faz sentido nenhum, visto que as tuas keys da SortedList irão ser Ints e aí estás a usar uma String.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tem soluções???

é k eu fiz da maneira k m disseram para fazer...

eu segui umas cenas k um prof deu e foi por isso k usei isto...

mas se tiverem sugestões coloquem aki....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Poderia dar soluções se soubesse o que pretendes fazer...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o k pretendo é o seguinte, é consultar um "socio" pelo nome....

é por isso k estava a usar isto, mas n sei se é o mais correcto:S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Algo tipo isto?

public Socios GetSocio(String nome) {
  foreach (Socios s in socios.Values) 
    if (s.Nome == nome) return s;
  
  return null;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado!!!

o codigo funciona na prefeição....

já agora podes m dar uma ideia?!?!

é assim preciso de fazer a pagar cotas, sabes de alguma maneira é k estou farto de dar voltas a minha cabeça e n consigo encontrar nada de jeito....

obrigado mais uma vez....

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