Ir ao conteúdo
  • Cadastre-se
MatheusTITributos

C++ Arquivo .txt busca e armazenamento de uma inscrição

Recommended Posts

Boa tarde pessoal.

Galera eu estou tentando desenvolver um programa que foi designado a mim que consiste em ler um arquivo cheio de numeros letras etc, o mesmo terá que armazenar em arquivos diferentes cada dado começando por 3,4,5,6  só que tem uma coisa que foi pedido que eu não to conseguindo fazer e gostaria de saber se podem me ajudar.

 

Primeiro Segue meu código para vocês entenderem:

#include <iostream>
#include <fstream>
#include <locale>
using namespace std;

int main() {

    setlocale(LC_ALL, "Portuguese");

    ifstream arquivo1;
    ofstream arquivox1;
    ofstream arquivox2;
    ofstream arquivox3;
    ofstream arquivox4;

    string linha;
    int ins ;

    arquivo1.open("Declan1.txt"); // abre arquivo p leitura
    arquivox1.open("arq3.txt"); // abre arquivo p escrita
    arquivox2.open("arq4.txt"); // abre arquivo p escrita
    arquivox3.open("arq5.txt"); // abre arquivo p escrita
    arquivox4.open("arq6.txt"); // abre arquivo p escrita
    
    if (arquivo1.is_open() && arquivox1.is_open() && arquivox2.is_open() && arquivox3.is_open() && arquivox4.is_open())
    {
        while (getline(arquivo1, linha))
        {
            cout << linha << endl; // lê o arquivo linha a linha
            
            
            if (linha.at(0) = '3')
            {
                arquivox1 << linha <<endl; //arquivox1 recebe linha e pula linha
            }
            if(linha.at(0) = '4')
            {
                    arquivox2 << linha <<endl;    
            }    
            if(linha.at(0) = '5')
            {
                    arquivox3 << linha <<endl;
            }    
            if(linha.at(0) = '6')
            {
                    arquivox4 << linha <<endl;    
            }    
        }
        

    arquivo1.close();
    arquivox1.close();
    arquivox2.close();
    arquivox3.close();
    arquivox4.close();    
    } else {
        cout << "Não foi possivel abrir o arquivo" << endl;
    }

    return 0;
}

 

Então galera, até ai eu consegui fazer mas não consigo pensar em uma lógica para que os arquivos além de receberem a linha ele receber também a inscrição, no caso ele teria que armazenar em uma variável essa inscrição essa inscrição esta na posição 1 - 8. No caso teria que ser atribua deixando a INSCRIÇÃO e LINHA DO CÓDIGO. e isso em diante,

Ex: o arquivox2 iria receber a inscrição + linha, arquivox3 iria receber a inscrição + linha.

 

Por favor alguem me ajuda ? irei enviar os dados txt que estou importando no qual estou utilizando em anexo.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@MatheusTITributos     você não enviou os dados txt , então não sabemos como estão organizados seu dados no arquivo ,  e essa inscrição como seria , seria um cabeçalho  ?              se for então antes de gravar os dados da linha  no arquivo você grava esse cabeçalho do mesmo jeito  .

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010  ta em anexos aqui.

 

Então eu teria que pegar e pecorrer linha por linha até encontrar uma sequencia de 8 numeros, ae esses 8 numeros eu teria que pegar e armazenar ele depois eu teria q apontar ele jogando pra antes de imprimir a linha.

 

Declan1.zip

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010  

O que ele quer seria eu criar uma variável ponteiro onde eu armazenaria a inscrição e apontaria para o inicio

EX:

if (linha.at(0) == '4')
        {
            arquivox4 << inscrição + linha<<endl;
            
        }

 

Só que não consigo criar uma lógica para tal. 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
18 minutos atrás, MatheusTITributos disse:

criar uma variável ponteiro onde eu armazenaria a inscrição e apontaria para o inicio

Aqui que tá, as variáveis ponteiro só apontam.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@MatheusTITributos    esse arquivo zip está com erro e não abre , melhor enviar ou postar ele como txt mesmo .

e para encontrar esses oito números no texto você precisa compara caractere por caractere e encontrando um número veja se os próximos sete números são dígitos também em caso afirmativo então você encontrou seus oito números .

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×