1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda c#

Discussão em 'Programação' iniciada por spin_, 27 de Maio de 2009. (Respostas: 1; Visualizações: 546)

  1. boa tarde..sou iniciante em c#, tenho uma aplicação para fazer que é o seguinte:
    numa textbox insiro um numero quando carrego num botao ele vai a um ficheiro de texto (tipo base de dados) passa tudo para a textbox10, depois aqui vai verificar se existe esse numero..

    se existir passa toda a informacao relativa ao numero que inseri para uma richtextbox, senao apresenta mensagem d erro...
    usei um for pra percorrer o array à procura do numero que foi inserido na caixa, ele passa tudo certo mas aqui o problema é que por o else estar dentro do for mesmo que o numero exista ele ta sempre a mostrar mensagem de erro.
    Alguem me ajuda a ver o codigo e o que estou a fazer mal?

    Como faço para aceder à ultima posicao de um array?


    privatevoid button1_Click(object sender, EventArgs e)
    {
    StreamReader rd = newStreamReader(@"C:\\teste.txt");
    string texto= rd.ReadToEnd();
    textBox10.Text = texto;
    rd.Close();

    int i = 0;
    string id = textBox1.Text;
    string[] campo = newstring[1000];
    string[] linha = newstring[1000];

    linha = texto.Split('\n');


    for (i = 0; i < linha.Length -1; i++)
    {
    campo = linha.Split('|');
    if (id.CompareTo(campo[0]) == 0)
    {
    do
    {
    richTextBox2.Text = richTextBox2.Text + linha;
    i++;
    } while (linha != "")
    }else messagebox.show("O id nao foi encontrado");
    }

    }
     
  2. nasic

    nasic Power Member

    Boas.
    Antes de mais, sempre que colocas código utiliza as tags [CODE*][/CODE*] (sem *).
    O teu ciclo está sempre a devolver o erro porque tu comparas smp o id com a mesma string.
    Código:
    id.CompareTo([B]campo[0][/B])
    Tens que trocar por campo para que compares todas as strings do array campo com o id.

    Utiliza o MessageBox.Show para fazer algum "debug" do teu código, caso não saibas fazer debug no visual studio. Imprimires as várias que estão a ser comparadas seria muito útil para perceberes o que está realmente a acontecer.

    No else abre e fecha as chavetas {}.

    Para acederes à ultima posição do array fazes array[array.Length-1] ou no teu caso, como tens o tamanho definido, podes fazer array[999]. O nome array deverá ser trocado pelo nome do teu array obviamente.

    Código:
    privatevoid button1_Click(object sender, EventArgs e)
    {
        StreamReader rd = newStreamReader(@"C:\\teste.txt");
        string texto= rd.ReadToEnd();
        textBox10.Text = texto;
        rd.Close();
    
        int i = 0;
        string id = textBox1.Text;
        string[] campo = newstring[1000];
        string[] linha = newstring[1000];
    
        linha = texto.Split('\n');
    
    
        for (i = 0; i < linha.Length -1; i++)
        {
            campo = linha[i].Split('|');
            if (id.CompareTo(campo[[B]i[/B]]) == 0)
               {
               do
               {
                   richTextBox2.Text = richTextBox2.Text + linha[i];
                   i++;
               } while (linha[i] != "")
            }else {
                   Messagebox.show("O id nao foi encontrado");
            }
       }
    }         
    
     

Partilhar esta Página