Ajuda c#

spin_

Membro
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");
}

}
 
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");
        }
   }
}
 
Back
Topo