Arquivos de Textos no C - Básico



Documentos relacionados
DESENVOLVIMENTO DE SOFTWARE II. Aula 07 A linguagem de programação C# e sua sintaxe

Orientação a Objetos

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Introdução a Java. Hélder Nunes

Prof. Esp. Adriano Carvalho

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

CURSO DE PROGRAMAÇÃO EM JAVA

Programação de Computadores I. Conhecendo a IDE Code::Blocks

Criando uma agenda simples com NetBeans 6.5

Estrutura de Dados. Introdução a Ponteiros. Prof. Gerson Borges Estrutura de Dados I 1

Organização de programas em Python. Vanessa Braganholo

Manual para conversão de Teses e Dissertações em PDF

Implementando uma Classe e Criando Objetos a partir dela

Microsoft Visual Studio 2010 C# Volume II

Trabalhando com Arquivos de Texto no VBA

Introdução à Programação

Trabalho Prático Nº1 Introdução ao C#.NET

Algoritmos e Programação Estruturada

JSP - ORIENTADO A OBJETOS

Persistência de Dados

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

2 Orientação a objetos na prática

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

LINGUAGEM DE PROGRAMAÇÃO ESTRUTURADA CAPÍTULO 1 APRESENTANDO O C#

20 Caracteres - Tipo char

Roteiro do Programa e Entrada/Saída

Introdução a Computação

Programando em C# Orientado a Objetos. By: Maromo

2 echo "PHP e outros.";

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

CURSO DE INFORMÁTICA BÁSICA AULA 2 O AMBIENTE WINDOWS

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Como Gerar documento em PDF com várias Imagens

Computação II Orientação a Objetos

CONVENÇÃO DE CÓDIGO JAVA

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

NetBeans. Conhecendo um pouco da IDE

Microsoft Office PowerPoint 2007

Procedimentos para Reinstalação do Sisloc

Procedimentos para Instalação do Sisloc

MICROSOFT OFFICE EXCEL 2007

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Trabalho Final. Data da Submissão: das 8h do dia 16/06 às 24h do dia 17/06. Data da Entrega do Relatório: das 15h às 18h no dia 18/06.

Capítulo 13. VARIÁVEIS DO TIPO REAL DUPLA

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Programação de Computadores - I. Profª Beatriz Profº Israel

PROGRAMANDO EM C# ORIENTADO A OBJETOS

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

Veja abaixo um exemplo de como os dados são mostrados quando usamos o

EXEMPLO DE COMO FAZER UMA MALA DIRETA

APOSTILA DE EXCEL 2007

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Lógica de Programação

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Banco de Dados Microsoft Access: Criar tabelas

Introdução a lógica de programação. Aula 02: Linguagens de Programação e Introdução ao Visual C# Express

Java 2 Standard Edition Como criar classes e objetos

O Primeiro Programa em Visual Studio.net

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO

MANUAL DE INSTALAÇÃO DO ODONTO TECHNOLOGY

Módulo 3936 ASP.NET. Financiado pelo FSE

Programação para Android. Aula 06: Activity, menus e action bar

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Nome N Série: Ferramentas

Como usar o bluej. Laboratório I Prof.ª Vera Alves

Introdução ao Desenvolvimento de Jogos BCT - UERN

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

Manual do Visualizador NF e KEY BEST

Manual de baixa do Certificado Digital AR SOLUTI. Versão 2.0 de 7 de Maio de Classificação: Ostensiva

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

Tutorial de Matlab Francesco Franco

IMPORTANTE: O sistema Off-line Dr.Micro é compatível com os navegadores Mozilla Firefox e Internet Explorer.

Capítulo 5. ARQUIVOS E FUNÇÕES MATEMÁTICAS INTRÍNSECAS

Componentes da linguagem C++

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

Projeto de Software Orientado a Objeto

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

VISUAL LIGHTBOX FERRAMENTA WEB DESIGN FABIANO KEIJI TAGUCHI

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

3. No painel da direita, dê um clique com o botão direito do mouse em qualquer espaço livre (área em branco).

Manual de baixa do Certificado Digital AR SOLUTI. Versão 2.0 de 22 de Maio de Classificação: Ostensiva

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Tarefa Orientada 2 Visual Studio 2005 e Visual C#

Instalando software MÉDICO Online no servidor

Configuração para o envio das cartas de atraso ou de aviso de vencimento

Conversão de Tipos e Arrays

AULA 06 CRIAÇÃO DE USUÁRIOS

Manual de Conversão para PDF Envio de Arquivos ao Diário Oficial

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

2 de maio de Remote Scan

Transcrição:

OpenStax-CNX module: m47676 1 Arquivos de Textos no C - Básico Joao Carlos Ferreira dos Santos This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 TRABALHANDO COM ARQUIVO DE TEXTO NO C# Introdução A linguagem C# foi criada pela Microsoft e faz parte do framework.net. É uma linguagem orientada a objetos e sua estrutura é baseada na linguagem C++, mas também tem inuência de outras linguagens orientada a objetos. Além de ser uma linguagem de fácil aprendizagem podemos ainda contar com a praticidade dos recursos do ambiente de desenvolvimento do Visual Studio. Neste artigo, indicarei como trabalhar com arquivos de texto no C#. Mostrarei uma prévia do conhecimento necessário para trabalhar com esses arquivos, e criarei um programa do tipo Windows Form utilizando os recursos apresentados. Instalando as Ferramentas de Desenvolvimento. Para facilitar o aprendizado e ainda o desenvolvimento utilizando a linguagem C# vamos instalar a IDE Visual Studio 2010 Express. Essa ferramenta é gratuita e pode ser baixada no site da Microsoft. Para instalação do Visual Studio temos que seguir os passos listados, abaixo: Primeiro: acessar o site http://www.microsoft.com/visualstudio/ptb 1 ir na guia Downloads depois; Segundo: escolher a versão em seguida na opção Visual Studio 2010 Express; Terceiro: depois em Visual C# 2010 Express escolher o idioma e clicar em Instalar agora. Agora após a instalação do programa podemos acessá-lo em botão do Windows Todos os Programas Microsoft Visual Studio 2010 Express. Version 1.1: Sep 23, 2013 7:54 am -0500 http://creativecommons.org/licenses/by/3.0/ 1 http://www.microsoft.com/visualstudio/ptb

OpenStax-CNX module: m47676 2 Figure 1 Nota: esse caminho para acessar o Visual Studio serve para versão do Windows 7. Tipos de Dados Esse tópico serve para mostrar os tipos de dados existentes na linguagem C#. O Tipo de dado em uma linguagem de programação inuencia no tamanho que o dado ocupa na memória do computador. Qualquer linguagem de programação trabalha com diversos tipos de dados e os mais comuns entre todas elas são: inteiro, ponto-utuante, booleano e texto. O C# também trabalha com esses tipos, mas vou mostrar de forma mais especica os tipos de dados desta linguagem. O C# trabalha com duas categorias de tipos de dados: Valor Referencia Variáveis do tipo Valor ainda tem duas subdivisões conforme mostro abaixo:

OpenStax-CNX module: m47676 3 Booleanos Numéricos Variável de Valor - Tipo Booleano Esse tipo representa valores lógicos, ou seja, verdadeiro (true) ou falso (false). Quando esse tipo de variável é declarado no C#, o seu valor padrão é false ( caso não seja denido um valor pelo programador). Variável de Valor - Tipo Numérico Os tipos numéricos são divididos em três categorias no C# sendo eles: Inteiro char 16 bits long 64 bits ulong 64 bits sbyte 8 bits int 32 bits short 16 bits ushort 16 bits Ponto-utuante oat 32 bits double 64 bits Decimal Decimal 128 bits Obs.: a descrição bits representa o quanto de espaço aquele tipo de dado ocupa na memória do computador. Variáveis do tipo Referência também tem duas subdivisões sendo elas: Class String Referência - Class É um tipo de dado construído, ou seja, um modelo que pode conter campos, constantes e operações próprias. Referência string Em C# o tipo string herda diretamente da classe de objetos e serve também para armazenar dados do tipo texto. É preciso sempre analisar em qual situação deve-se usar determinado tipo de dado para não ter uso inadequado da memória do computador como, por exemplo, declarar uma variável do tipo oat para trabalhar com informações de idade. Nesse caso, o tipo int já estaria de bom grado. Supondo que cada quadradinho das imagens abaixo representa um endereço de memória e que cada um tivesse a capacidade de armazenar até 20 bits. Se declarasse o oat para trabalhar com informações sobre idade estaría desperdiçando memória, conforme pode-se ver nos dois quadrados Usando o oat:

OpenStax-CNX module: m47676 4 Figure 2 Usando o int: Figure 3 Trabalhando com Vetores Vetores são estruturas de dados onde podemos armazenar uma quantidade de um tipo especico de dados. O tipo especicado em um vetor será armazenado em posições diferentes dele. Para car mais claro vamos a um exemplo. Declarar um vetor que trabalhara com dados do tipo texto com no máximo cinco posições seria assim: string[] pessoa = new string(5); pessoa[0] = maria; pessoa[1] = antonio; pessoa[2] = joao; pessoa[3] = rodrigo; pessoa[4] = marinho;

OpenStax-CNX module: m47676 5 Figure 4 Os vetores sempre iniciam em zero, por tanto, se for declarado um vetor de cinco posições teremos na verdade um intervalo de zero a quatro, ou seja, o tamanho de um vetor declarado será sempre sua quantidade declarada menos um. Conversão de Tipos no C# No C# existem duas formas de conversão de dados que são feitas: de forma implícita e explicita. Forma Implícita A conversão implícita ocorre da seguinte forma: quando se declara uma variável de um tipo inteiro, por exemplo, essa variável pode ser atribuída à outra variável de um tipo ponto-utuante e a conversão ocorre de forma automática. Quando isso ocorre dizemos que ocorreu um cast implícito. No entanto, um tipo oat não pode ser atribuído em um tipo int, isso porque um tipo oat é capaz de armazenar um volume maior de informações que um tipo int. Portanto, não é possível essa conversão implicitamente. Outra impossibilidade é atribuir um tipo texto a um tipo numérico. Abaixo, temos os exemplos da explicação: A conversão implícita não ocorre: Figure 5 A conversão implícita ocorre:

OpenStax-CNX module: m47676 6 Figure 6 Forma Explicita Em alguns casos é necessário realizar a conversão dos tipos de dados de forma explicita. Um exemplo de conversão explicita pode ser usando um cast ou um comando de conversão. Vamos ver as duas formas: Usando Cast No caso do cast nós podemos converter operações simples como, por exemplo, um tipo oat para um tipo int, mas devemos tomar cuidado com esse tipo de conversão já que podemos ter perda signicativa de dados. Um exemplo seria ter um valor do tipo oat 34,5 e jogar para uma variável do tipo int. Provavelmente, quando o tipo oat passada para o tipo int nós teríamos como retorno o valor 34 apenas, ou seja, perderíamos a parte decimal do número. Fazemos um cast colocando antes do valor atribuído e entre parênteses o tipo de dados para o qual vamos usar. Exemplo de cast: Figure 7 Usando Comandos

OpenStax-CNX module: m47676 7 O C# disponibiliza comandos para conversão de tipos de dados através da classe Convert. Para usar esse recurso basta digitar o nome Convert seguido do operador ponto e o nome do método que deseja usar. No exemplo abaixo podemos ver a conversão de um tipo texto para o tipo numérico usando um método da classe Convert: Figure 8 Trabalhando com Classes Na programação uma classe nada mais é que um modelo onde nós denimos o comportamento de um objeto através de ações, estados e atributos. Pela denição da estrutura da classe podemos identicar o tipo de serviço que ela fornece. Com a criação da classe podemos dizer que criamos um novo tipo de dado. Vamos agora trabalhar com classes na linguagem C# mostrando sua construção e o uso de seus objetos. Imaginemos a criação de um sistema de biblioteca escolar onde teríamos o gerenciamento de reserva, entrega e pesquisa de livros. Certamente nesse sistema teríamos uma entidade responsável pela identicação dos livros, ou seja, uma classe que poderíamos dar o nome de Livro. Após identicarmos a necessidade de criação dessa classe teríamos que denir sua estrutura e basicamente o que podemos encontrar em um livro seria ISBN, Autor, Editora e Paginas. Esses itens seriam os atributos da nossa classe Livro as ações seriam métodos como reservar, consultar e devolver. As Classes StreamReader e StreamWriter Através dessas dessas classes podemos trabalhar com o processo de entrada/saída (input/output) de dados em arquivos sequenciais. StreamWriter Com os recursos disponíveis nessa classe podemos trabalhar com a escrita de caracteres em arquivos sequenciais. Por exemplo, para escrever a seguinte frase em um arquivo poderíamos criar o código, abaixo:

OpenStax-CNX module: m47676 8 Figure 9 O código acima cria um arquivo chamado dados.txt (caso o arquivo ainda não exista) e escreve nesse arquivo o texto Meus dados escritos no arquivo e por m fecha a conexão com o arquivo. Toda vez que esse código for executado o texto será sobre escrito, mas para evitar que isso aconteça pode-se incluir um segundo parâmetro no construtor da classe. Assim, o código manteria os dados já existes no arquivo e incluiria novos sempre após o ultimo registro. Figure 10 StreamReader Com os recursos disponíveis nessa classe podemos realizar a leitura em arquivos sequencias. Por exemplo, para ler o mesmo arquivo escrito no exemplo anterior poderíamos fazer o seguinte:

OpenStax-CNX module: m47676 9 Figure 11 Agora, vamos por em prática os conceitos vistos criando um mini-sistema para controle de empréstimo de livros em uma biblioteca universitária. Nosso sistema será bem simples. Teremos uma classe Aluno para controle dos alunos, uma classe Livro controle dos livros e uma classe Reservas para controle do livros emprestados. Os dados referentes a livros, alunos e reservas serão armazenados em arquivos do tipo txt. Precisamos criar três arquivos para utilizarmos como fonte de dados do sistema nomeados como Livros.txt, Alunos.txt e Reservados.txt em uma pasta chamada Temp na unidade C:. Arquivo Alunos.txt Figure 12 Arquivo Livros.txt

OpenStax-CNX module: m47676 10 Figure 13 Arquivo Reservados.txt Figure 14 Agora, criaremos um projeto do tipo Windows Form Application no Visual Studio. Abra o Visual Studio, depois vá em File New Project em seguida, nos Templates escolha a opção Windows Form Application e dê um nome para sua aplicação conforme a imagem abaixo:

OpenStax-CNX module: m47676 11 Figure 15 Feito isso, dê o OK e o Visual Studio ira gerar o projeto. Nesse projeto nós encontramos por padrão a classe Program.cs e um formulário nomeado como Form1, mas precisamos incluir novos objetos nesse projetos. Primeiro, vamos incluir mais um Windows Form e nomear para frmmenu e renomear o já existente para frmconsultar. Depois, inserir os outros objetos até que que igual a imagem abaixo:

OpenStax-CNX module: m47676 12 Figure 16 Incluir também os seguintes eventos para cada um dos objetos: Objeto frmconsular: private void frmconsultar_load(object sender, EventArgs e) lblstatus.text = ""; btnlivrocom.enabled = false; btndevolver.enabled = false; btnreservar.enabled = false; Objeto txtconsuta: private void txtconsulta_textchanged(object sender, EventArgs e) objlivro = new Livro(); string[] arrlivro = new string[objlivro.buscalivros(txtconsulta.text).length];

OpenStax-CNX module: m47676 13 lstlivros.items.clear(); lstlivros.items.add("código Título Autor Editora "); foreach (string stritem in objlivro.buscalivros(txtconsulta.text)) lstlivros.items.add(stritem.tostring().trim()); Objeto lstlivros: private void lstlivos_selectedindexchanged(object sender, EventArgs e) objreserva = new Reserva(); string stritem = objreserva.buscarreserva(lstlivros.selecteditem.tostring().substring(0, 2).Trim()); string meuregistro = stritem; if (meuregistro.length > 0) lblstatus.text = "Reservado"; lblstatus.forecolor = System.Drawing.Color.Red; btnlivrocom.enabled = true; btndevolver.enabled = true; btnreservar.enabled = false; // Variável com visão global dadosreserva = meuregistro; else lblstatus.text = "Disponível"; lblstatus.forecolor = System.Drawing.Color.Blue; btnlivrocom.enabled = false; btndevolver.enabled = false; btnreservar.enabled = true; Objeto btnlivrocom: private void btnlivrocom_click(object sender, EventArgs e) Form f1 = new frmmanu(dadosreserva); f1.show(); Objeto btndevolver: private void btndevolver_click(object sender, EventArgs e) string reglivro = lstlivros.selecteditem.tostring(); objreserva.limpareserva(reglivro.substring(0,2).tostring().trim()); MessageBox.Show("Livro entregue!"); Objeto btnreservar: private void btnreservar_click(object sender, EventArgs e) string reglivro; objreserva = new Reserva(); reglivro = lstlivros.selecteditem.tostring(); if (txtmatricula.text.length!= 7)

OpenStax-CNX module: m47676 14 MessageBox.Show("Falta Matricula / Matricula Invalida"); return; objreserva.gravarreserva(reglivro.substring(0, 2).Trim(), txtmatricula.text.trim()); MessageBox.Show("Reserva realizada!"); txtmatricula.text = ""; Agora para o segundo formulário: Figure 17 Evento do objeto frmmenu: private void frmmenu_load(object sender, EventArgs e) //MessageBox.Show(minhasReservas); lbldatareserva.text = minhasreservas.substring(17, 10); objaluno.buscaaluno(minhasreservas.substring(7, 10).Trim()); lblmatricula.text = objaluno.matricula.tostring() ; lblnome.text = objaluno.nome; lbltelefone.text = objaluno.telefone; lblendereco.text = objaluno.endereco; Nota: nesse projeto temos uma mudança no construtor do formulário frmmenu sendo necessário deixá-lo assim:

OpenStax-CNX module: m47676 15 public frmmenu(string argreserva) InitializeComponent(); minhasreservas = argreserva; Agora, para nalizar, vamos incluir as classes que fazem parte do projeto. Para incluir as classes devemos clicar sobre BibliotecaApp Add New Item Class. Após criar as três classes (Livro, Aluno e Reserva) temos que incluir o código de cada uma. Código da Classe Livro class Livro string[] arrregistro; StreamReader sr; public string[] buscalivros(string arglivro) sr = new StreamReader(@"C:\Temp\Livros.txt"); arrregistro = new string[20]; int i = 0; while (!sr.endofstream) string registro = sr.readline(); if (registro.contains(arglivro)) arrregistro[i] = registro; i++; return arrregistro; Código da Classe Aluno class Aluno public string matricula; public string nome; public string telefone; public string endereco; StreamReader sr; public void buscaaluno(string argcodigo) sr = new StreamReader(@"C:\Temp\Alunos.txt"); string regaluno; while (!sr.endofstream) regaluno = sr.readline().tostring(); if (regaluno.contains(argcodigo)) string[] arraluno = regaluno.split(';'); matricula = arraluno[0]; nome = arraluno[1]; telefone = arraluno[2]; endereco = arraluno[3]; Código da Classe Reserva

OpenStax-CNX module: m47676 16 class Reserva StreamReader sr; StreamWriter sw; string registro = ""; public string buscarreserva(string argcodigo) sr = new StreamReader(@"C:\Temp\Reservados.txt"); string linhareg; while (!sr.endofstream) linhareg = sr.readline().tostring(); if (argcodigo!= linhareg.substring(0, 2)) registro = ""; else registro = linhareg; sr.close(); return registro; sr.close(); return registro; public void gravarreserva(string argcodigo, string argmatricula) sw = new StreamWriter(@"C:\Temp\Reservados.txt",true); sw.writeline(argcodigo + " " + argmatricula + " " + DateTime.Today.ToString().Substring(0, 10)); sw.close(); public void limpareserva(string argcodigo) string[] arrreserva = new string[0]; sr = new StreamReader(@"C:\Temp\Reservados.txt"); int i = 0; while (!sr.endofstream) string strlinha = sr.readline(); if (argcodigo!= strlinha.substring(0, 2).Trim()) arrreserva[i] = strlinha; sr.close(); sw = new StreamWriter(@"C:\Temp\Reservados.txt"); for (int j = 0; j < arrreserva.length; j++) sw.writeline(arrreserva[j]); sw.close(); O Código da Classe Program static class Program /// <summary>

OpenStax-CNX module: m47676 17 /// The main entry point for the application. /// </summary> [STAThread] static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new frmconsultar()); note: Referências: Programação em C#: http://www.ev.org.br/cursos/paginas/online.aspx. Acessado em 10/09/2013