Como ler e gravar em um arquivo de texto usando o Visual C++ .NET ou Visual C++ 2005

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 816148
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 816149.

Para uma versão deste artigo do Microsoft Visual Basic. NET, consulte 315828.

NESTA TAREFA

Sumário
Este artigo passo a passo descreve como ler e gravar em um arquivo de texto usando o Visual C++ .NET ou Visual C++ 2005.

back to the top

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você deve ter:
  • Microsoft Visual C++ .NET ou Microsoft Visual C++ 2005
Este artigo pressupõe que você esteja familiarizado com o tópico a seguir:
  • Microsoft Visual C++ .NET ou Visual C++ 2005
back to the top

Leitura e arquivos de texto de gravação

As seções de Write a Text File (Example 1) e Write a Text File (Example 2) descrevem como usar a classe StreamWriter para gravar texto em um arquivo. A seção de Read a Text File deste artigo descreve como usar a classe StreamReader para ler um arquivo de texto.

back to the top

Gravar um arquivo de texto (exemplo 1)

O código a seguir usa a classe StreamWriter para abrir, gravar e feche o arquivo de texto. De maneira semelhante à classe StreamReader , você pode passar o nome de caminho de um arquivo de texto para o construtor StreamWriter para abrir o arquivo automaticamente. O método WriteLine grava uma linha completa de texto para o arquivo de texto.
  1. Inicie o Visual Studio .NET ou Visual Studio 2005.
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. No Visual Studio .NET 2002, clique em Projetos do Visual c++ em Tipos de projeto e, em seguida, clique em Aplicativo de C++ gerenciado em modelos .

    No Visual Studio .NET 2003, clique em Projetos do Visual c++ em Tipos de projeto e, em seguida, clique em Aplicativo de console (NET) em modelos .

    Observação No Visual Studio 2005, clique em Visual C++ em Tipos de projeto e, em seguida, clique em Aplicativo de console CLR em modelos .
  4. Na caixa de texto nome , digite Sample1 e, em seguida, clique em OK .
  5. Abra o arquivo Sample1.cpp. Adicione o seguinte código:
    using namespace System::IO;
  6. Substitua o código existente da função principal com o código a seguir:
        try     {	    //Pass the file path and file name to the StreamWriter Constructor.	    StreamWriter* sw = new StreamWriter(S"C:\\Test.txt");	    //Write a line of text.	    sw->WriteLine(S"Hello World!!");	    //Write a second line of text.	    sw->WriteLine("From the StreamWriter class");	    //Close the file.	    sw->Close();    }    catch(Exception* e)    {        Console::WriteLine("Exception: {0}",e->Message);    }    __finally     {        Console::WriteLine("Executing finally block.");    }	    return 0;
  7. No menu Debug , clique em Iniciar para compilar e executar o aplicativo. Esse código cria um arquivo chamado Test.txt na unidade C. abrir o arquivo Test.txt em um editor de texto, como o bloco de notas. O arquivo Test.txt contém as duas linhas de texto a seguir:
    Hello World!!From the StreamWriter class
back to the top

Gravar um arquivo de texto (exemplo 2)

O código a seguir usa a classe StreamWriter para abrir, gravar e feche o arquivo de texto. Ao contrário do exemplo anterior, esse código passa dois parâmetros adicionais para o construtor. O primeiro parâmetro é o caminho do arquivo e o nome arquivo do arquivo. O segundo parâmetro, True , especifica que o arquivo é aberto no modo de acrescentar. Se você especificar False para o segundo parâmetro, o conteúdo do arquivo será sobrescrito toda vez que executar o código. O terceiro parâmetro especifica a Unicode . Portanto, a classe StreamWriter codifica o arquivo no formato Unicode. Você também pode especificar os métodos de codificação a seguir para o terceiro parâmetro:
  • ASC11
  • Unicode
  • UTF7
  • UTF8
O método de gravação é semelhante ao método WriteLine , exceto que o método de gravação não automaticamente incorporar um retorno de carro ou combinação de caracteres (CR/LF) alimentação de linha. Isso é útil quando você deseja escrever um caractere por vez.
  1. Inicie o Visual Studio .NET ou Visual Studio 2005.
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. No Visual Studio .NET 2002, clique em Projetos do Visual c++ em Tipos de projeto e, em seguida, clique em Aplicativo de C++ gerenciado em modelos .

    No Visual Studio .NET 2003, clique em Projetos do Visual c++ em Tipos de projeto e, em seguida, clique em Aplicativo de console (NET) em modelos .

    Observação No Visual Studio 2005, clique em Visual C++ em Tipos de projeto e, em seguida, clique em Aplicativo de console CLR em modelos .
  4. Na caixa de texto nome , digite Sample3 e, em seguida, clique em OK .
  5. Abra o arquivo Sample3.cpp. Adicione o seguinte código:
    using namespace System::IO;using namespace System::Text;
  6. Substitua o código existente da função principal com o código a seguir:
        Int64 x;    try     {	    //Open the File.        StreamWriter* sw = new StreamWriter(S"C:\\Test1.txt", true, Encoding::ASCII);	    //Write out the numbers 0 to 9 on the same line.	    for(x=0; x < 10; x++)	    {		    sw->Write(x);	    }	    //Close the file.	    sw->Close();    }    catch(Exception* e)    {        Console::WriteLine(S"Exception: {0}", e->Message);    }    __finally     {        Console::WriteLine(S"Executing finally block.");    }	    return 0;
  7. No menu Debug , clique em Iniciar para compilar e executar o aplicativo. Esse código cria um arquivo que é chamado Test1.txt na unidade C. abrir o arquivo Test1.txt em um editor de texto, como o bloco de notas. O arquivo Test1.txt contém a única linha de texto a seguir:
    0123456789
back to the top

Ler um arquivo de texto

O código a seguir usa a classe StreamReader para abrir, ler e feche o arquivo de texto. Você pode passar o nome de caminho de um arquivo de texto para o construtor StreamReader para abrir o arquivo automaticamente. O método ReadLine lê cada linha de texto e, em seguida, aumenta o ponteiro de arquivo para a próxima linha como ele lê. Quando o método ReadLine atingir o final do arquivo, ele retorna uma referência nula.
  1. Inicie o Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005.
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. No Visual Studio .NET 2002, clique em Projetos do Visual c++ em Tipos de projeto e, em seguida, clique em Aplicativo de C++ gerenciado em modelos .

    No Visual Studio .NET 2003, clique em Projetos do Visual c++ em Tipos de projeto e, em seguida, clique em Aplicativo de console (NET) em modelos .

    Observação No Visual Studio 2005, clique em Visual C++ em Tipos de projeto e, em seguida, clique em Aplicativo de console CLR em modelos .
  4. Na caixa de texto nome , digite Sample2 e, em seguida, clique em OK .
  5. Abra o arquivo Sample2.cpp. Adicione o seguinte código:
    using namespace System::IO;
  6. Substitua o código existente da função principal com o código a seguir:
        String* line;    try         {	        //Pass the file path and file name to the StreamReader constructor.	        StreamReader* sr = new StreamReader(S"C:\\test1.txt");	        //Read the first line of text.	        line = sr->ReadLine();	        //Continue to read until you reach end of file.	        while (line != NULL) 	        {		        //Write the lie to console window.                Console::WriteLine(line);		        //Read the next line.                line = sr->ReadLine();	        }	        //Close the file.	        sr->Close();            Console::ReadLine();        }        catch(Exception* e)        {            Console::WriteLine(S"Exception: {0}",e->Message);        }        __finally         {            Console::WriteLine(S"Executing finally block.");        }        return 0;
  7. No menu Debug , clique em Iniciar para compilar e executar o aplicativo. Pressione ENTER para fechar a janela Console. A janela console exibe o conteúdo do arquivo Test1.txt .
back to the top

Concluir a listagem de código

Gravar um arquivo de texto (versão 1)

#include <tchar.h>#using <mscorlib.dll>using namespace System;using namespace System::IO;int _tmain(){    try     {	    //Pass the file path and file name to the StreamWriter Constructor.	    StreamWriter* sw = new StreamWriter(S"C:\\Test.txt");	    //Write a line of text.	    sw->WriteLine(S"Hello World!!");	    //Write a second line of text.	    sw->WriteLine("From the StreamWriter class");	    //Close the file	    sw->Close();    }    catch(Exception* e)    {        Console::WriteLine("Exception: {0}",e->Message);    }    __finally     {        Console::WriteLine("Executing finally block.");    }	    return 0;}
Observação Você deve adicionar a opção de compilador de suporte de tempo de execução idioma comum (/ CLR: oldSyntax) no Visual C++ 2005 a compilar com êxito o exemplo de código anterior. Para adicionar a opção de compilador de suporte de tempo de execução idioma comum no Visual C++ 2005, siga estas etapas:
  1. Clique em Project e clique em <ProjectName> propriedades .

    Observação <ProjectName> é um espaço reservado para o nome do projeto.
  2. Expanda Configuration Properties e, em seguida, clique em Geral .
  3. Clique para selecionar Common Language Runtime suporte, sintaxe antiga (/ CLR: oldSyntax) no projeto oferece suporte a Common Language Runtime configuração no painel à direita, clique em Aplicar e em seguida, clique em OK .
Para obter mais informações sobre o common language runtime oferece suporte à opção do compilador, visite o seguinte site da Microsoft:
/ clr (Common Language Runtime Compilation)
http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx

Gravar um arquivo de texto (versão 2)

#include <tchar.h>#using <mscorlib.dll>using namespace System;using namespace System::IO;using namespace System::Text;int _tmain(){    Int64 x;    try     {	    //Open the File.        StreamWriter* sw = new StreamWriter(S"C:\\Test1.txt", true, Encoding::ASCII);	    //Write out the numbers 0 to 9 on the same line.	    for(x=0; x < 10; x++)	    {		    sw->Write(x);	    }	    //Close the file.	    sw->Close();    }    catch(Exception* e)    {        Console::WriteLine(S"Exception: {0}", e->Message);    }    __finally     {        Console::WriteLine(S"Executing finally block.");    }	    return 0;}

Ler um arquivo de texto

#include <tchar.h>#using <mscorlib.dll>using namespace System;using namespace System::IO;int _tmain(){    String* line;    try         {	        //Pass the file path and file name to the StreamReader constructor.	        StreamReader* sr = new StreamReader(S"C:\\test.txt");	        //Read the first line of text.	        line = sr->ReadLine();	        //Continue to read until you reach end of file.	        while (line != NULL) 	        {		        //Write the lie to console window.                Console::WriteLine(line);		        //Read the next line.                line = sr->ReadLine();	        }	        //Close the file.	        sr->Close();            Console::ReadLine();        }        catch(Exception* e)        {            Console::WriteLine(S"Exception: {0}",e->Message);        }        __finally         {            Console::WriteLine(S"Executing finally block.");        }        return 0;}
back to the top

Solução de problemas

Para todas as manipulações de arquivo, é recomendável prática para encapsular o código dentro de um bloco try-catch-__finally para manipular erros e exceções de programação. Especificamente, convém liberar identificadores para o arquivo no bloco final para que o arquivo não está bloqueado indefinidamente. Alguns possíveis erros incluem um arquivo que não existe ou um arquivo que já está em uso.

back to the top
Referências
Para obter mais informações sobre as classes StreamReader e StreamWriter , visite os seguintes sites do Microsoft Developer Network (MSDN) da:
back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 816148 - Última Revisão: 11/22/2007 08:17:35 - Revisão: 3.5

Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual C++ .NET 2002 Standard Edition

  • kbmt kbsample kbcode kbfileio kbhowtomaster KB816148 KbMtpt
Comentários