Reading Files in C#

Asked

Viewed 118 times

0

good night, a help for kindness.

I have the following file:

34543;PRIMEIRA PESSOA;230778;CASADO;BANCARIO
23543;SEGUNDA PESSOA;12051985;CASADO;ADMINISTRADOR DE EMPRESAS
36116;TERCEIRA PESSOA;04081954;DIVORCIADO;APOSENTADO/PENSIONISTA
52455;QUARTA PESSOA;16111987;CASADO;ARTESAO

Each line in this file is an object. Each object is inserted in a list. However, I am unable to access the attributes of the object.

Classe Cidadao:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MeuPrimeiroLeitorDeArquivo
{
    public class Cidadao
    {
        public int numeroRegistro { get; set; }
        public string nomeCompleto { get; set; }
        public string dataNascimento { get; set; }
        public string estadoCivil { get; set; }
        public string profissao { get; set; }

        public Cidadao (int nrRegistro, string nmCompleto, string dtNasc, string estCivil, string prfs)
        {
            this.numeroRegistro = nrRegistro;
            this.nomeCompleto = nmCompleto;
            this.dataNascimento = dtNasc;
            this.estadoCivil = estCivil;
            this.profissao = prfs;
        }
    }
}

Form1 class

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace MeuPrimeiroLeitorDeArquivo
{
    public partial class FormPrincipal : Form
    {
        private List<Cidadao> cidadaos = new List<Cidadao>();

        public FormPrincipal()
        {
            InitializeComponent();
        }

        private void FormPrincipal_Load(object sender, EventArgs e)
        {
            List<Cidadao> cidadaos = new List<Cidadao>();

            string arqTxt = @"C:\eclipse\teste1.txt";

            if (File.Exists(arqTxt))
            {
                try
                {
                    using (StreamReader sr = new StreamReader(arqTxt))
                    {
                        String linha;
                        while((linha = sr.ReadLine()) != null)
                        {
                            int formNumeroRegistro;
                            string formNomeCompleto;
                            string formDataNascimento;
                            string formEstadoCivil;
                            string formProfissao;

                            string[] linhaExplodida = linha.Split(';');

                            formNumeroRegistro = Convert.ToInt32(linhaExplodida[0]);
                            formNomeCompleto = linhaExplodida[1];
                            formDataNascimento = linhaExplodida[2];
                            formEstadoCivil = linhaExplodida[3];
                            formProfissao = linhaExplodida[4];

                            Cidadao cidadao = new Cidadao(formNumeroRegistro, formNomeCompleto, formDataNascimento, formEstadoCivil, formProfissao);

                            cidadaos.Add(cidadao);

                        }
                    }

                    if (cidadaos.Count > 0)
                    {
                        Cidadao pessoa1 = this.cidadaos[0];
                        textNumeroRegistro = pessoa1.profissao;
                    }

                } catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            } else
            {
                MessageBox.Show("Arquivo " + arqTxt + " não localizado");
            }
        }
    }
}

The line textNumerRegister = person1.numberRegister; does not compile.

If I do textNumerRegister = Convert.Tostring(people1.numberRegister); also does not compile.

In Visutal Studio, the error message shown is CS0029 Cannot implicitly convert type "int" to "System.Windows.Forms.Textbox"

Does anyone know why?

2 answers

0

This error happened because it was assigning a value to the field itself. That is, the .Text.

The correct is:

textNumeroRegistro.Text = pessoa1.profissao;

0

Exactly I just redo.

Don’t forget to convert the code because it is whole.

inserir a descrição da imagem aqui

Browser other questions tagged

You are not signed in. Login or sign up in order to post.