Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Bronislaw

Abrir Arquivos .txt em C

Recommended Posts

Pessoal tenho um trabalho para fazer em C que usa lista e lista cabecalho, até ae tudo bem já sei lidar com isso, o problema é que tenho que dentro de um certo diretorio abrir varios arquivos .txt e copiar o que tem dentro desses arquivos txt para o programa, só que já pesquisei e só achei uns codigos muito complexos que não consigo entender nada, foi no site da microsoft ainda.

Alguém sabe como devo fazer, para abrir varios arquivos txt de dentro de uma pasta e copiar o que esta escrito neles, obrigado pessoal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigadão miniman12, mas infelizmente nesse trabalho só posso utilizar codigos de C mesmo, não posso usar C++ ou C#.

Se alguem souber de alguma função codigo ou qualquer coisa que possa ajudar me avisem pessoal. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo você pode usar a funcao fopen...

você quer pegar o que esta em cada arquivo e juntar tudo e joga em apenas um?

você pode usar a funcao fwrite e fread ou fgetch

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro,

estou mandando um código meu que pega dados de um arquivo texto e transforma em uma lista de dados no programa.

código - http://www.mediafire.com/?miv4mgzn0mm

Para usar e testar o programa crie um arquivo .txt co números inteiros separados por expaços ou quebra de linha. O programa vai transformar isso em uma árvore binária em largura e depois irá gerar percorrimentos como saída.

dê uma olhada na função

le_entrada();

ela que puxa os dados do arquivo. Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigadão Dejaime, creio que ira ajudar para caramba, o meu trabalho é um pouco diferente, consigo fazer tudo menos essa parte de abrir os arquivos que o professor não ensinou e disse que faz parte da pesquisa do trabalho, fiquei meio de cara com isso.

Ele quer que abra e jogue numa lista cabeçalho.

Vou colocar o inicio do problema aqui.

"Desenvolver uma aplicação que crie, mantenha e utilize um índice de palavras na forma de listas encadeadas, contendo a localização de todas as ocorrências dessas palavras em arquivos-texto gravados em uma localização específica (um diretório) do disco.

Tarefas Solicitadas.

O trabalho deve desenvolver um programa em linguagem C que construa um mini-banco de dados em memória primária utilizando listas encadeadas, contendo um índice para todas as ocorrências de todas as palavras contidas nos arquivos-texto (*.txt) armazenados em uma pasta (diretório) específica do disco. Com esse índice na memória, o programa deverá permitir a pesquisa de uma palavra qualquer e, caso a encontre no índice, extrair do mesmo as seguintes informações:

1 - Número total de ocorrências da palavra (considerando todos os arquivos indexados);

2 - Número de arquivos onde a palavra ocorre;

3 - Nome do arquivo e um breve contexto (trecho do arquivo), de cada uma das ocorrências da palavra.

Simulando o Google Desktop ou Windows Desktop Search (só que somente para txt).

Bom a parte de lista encadeadas sei trabalhar legal, até porque a gente viu muito isso nas aulas, fizemos muitos exercicios também, o problema esta exatamente em abrir todos esses .txt formando um nó cabeçalho e as palavras de dentro do txt separados por virgula em uma lista encadeada dentro do nó cabecalho.

Só não sei a parte de abrir o arquivo, você que entende bastante se tiver umas dicas para me dar também, qualquer coisa que ajude eu ficaria muito agradecido mesmo.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

para abrir um arquivo você deve primeiro criar um ponteiro do tipo FILE. Existem algumas formas de você criar um arquivo como segue abaixo:

"Modo" [significado]

"r" [abre um arquivo texto para leitura]

"w" [cria um arquivo texto para escrita]

"a" [anexa um arquivo texto]

"rb" [abre um arquivo binário para leitura]

"wb" [cria um arquivo binário para escrita]

"ab" [anexa um arquivo binário]

"r+" [abre um arquivo texto para leitura /escrita]

"w+" [cria um arquivo texto para leitura / escrita]

"a+" [anexa ou cria um arquivo-texto para leitura / escrita]

"r+b" [abre um arquivo binario para leitura / escrita]

"w+b" [cria um arquivo binário para leitura / escrita]

"a+b" [anexa um arquivo binário para leitura / escrita]

(fonte: C completo e Total - terceira Edição)

exemplo de código abrindo um arquivo.

void leitura()

{

int i=0;

fp=fopen("teste.txt","r");

if(fp == NULL)

{

printf("Erro ao abrir arquivo");

getch();

}

printf("Lendo arquivo e carregando vetor");

while(!feof(fp))//enquanto não atingir o fim do arquivo//

{

fscanf(fp,"%d",&vn);//le dado do arquivo e insere no vetor//

i++;

}

fclose(fp);//fecha o arquivo

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

hunnn beleza, até ae consegui fazer tranquilo sem nenhum erro, o problema esta em iniciar o programa por parametro (linha de comando na inicialização do programa), essa parte sei fazer também.

Só não consegui achar uma função ou fazer uma função, para ele abrir os arquivos de uma certa pasta, se essa pasta tiver por exemplo 20 arquivos txt, preciso abrir todos eles, jogar em um nó-cabeçalho, para depois acessar esse nó-cabeçalho abrindo arquivo por arquivo pegando as palavras e jogando em uma lista.

Esse esta o meu maior problema até agora...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para incrementar seu projeto,dê uma passada no www.gotapi.com.Lá você encontrará sintaxe das principais funções de grandes linguagens,inclusive de C/C++.Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Pessoal, seguinte:

construí esse código de acordo com as n números de apostilas e fóruns que visitei e ainda assim está dando a seguinte mensagem: "11 C:\Dev-Cpp\main3.cpp invalid operands of types `FILE*' and `FILE*' to binary `operator*' "

Afinal, o que é que eu estou fazendo de errado?

#include <string.h>

#include <stdio.h>

using namespace std;

int main()

{

FILE *fp;

fp *fopen("arquivo.txt", "r");

if(!fp)

{

printf("Erro ao abrir o arquivo\n");

return 0;

}

fclose(fp);

system("PAUSE");

return EXIT_SUCCESS;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Oi Pessoal, seguinte:

construí esse código de acordo com as n números de apostilas e fóruns que visitei e ainda assim está dando a seguinte mensagem: "11 C:\Dev-Cpp\main3.cpp invalid operands of types `FILE*' and `FILE*' to binary `operator*' "

Afinal, o que é que eu estou fazendo de errado?

Olha aí o jeito correto:


#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *fp;

fp = fopen("teste.txt", "r");

// lê o arquivo aqui

fclose(fp);

return 0;
}

E você ressucitou um tópico do ano passado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu mesmo brother, desculpe a demora, tinha resolvido o problema e nao voltei pra saber se tinham m respondido ou nao... mas mesmo assim, muito obrgd

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia amigo gostaria que você fize-se meu programa abrir os dados txt que ele cria....

Esse e codigo fonte:

#include <stdio.h>

#include <stdlib.h>

main(void)

{

system("color 17");

//variaveis

float n1, n2;

int dia, mes, ano, opcao;

FILE *data; // Cria o arquivo

//entrada de dados

system("cls");

do {

system("date/t");

system("cls");

printf("\n\t\t\tDigiboard Eletronica da Amazonia\n\n");

printf("\nDigite a data de hoje (dd mm aaaa): ");

scanf("%d%d%d", &dia, &mes, &ano);

printf("\nDigite a quantidade produzida: ");

scanf("%f", &n1);

printf("\nDigite a quantidade de defeitos: ");

scanf("%f", &n2);

//Armazenar dados no TXT

data = fopen("data.txt", "a+"); // abre o arquivo

fprintf(data, "%d %d %d", dia, mes, ano);

fprintf(data, " # %.f # %.f # ", n1, n2);

fprintf(data, "%.2fp # %.2fp\n", ((n1/(n1+n2))*100), ((n2/n1)*100));

fclose(data);

//Processamento

printf("\n Data de inclusao dos dados: %d/%d/%d", dia, mes, ano);

printf("\n Quantidade produzida: %.f", n1);

printf("\n Quantidade de defeitos: %.f", n2);

printf("\n O indice de YELD e de: %.2fp", ((n1/(n1+n2))*100));

printf("\n O indice de Defeito e de: %.2fp", ((n2/n1)*100));

//Finalização

printf("\n\n Deseja re-fazer o calculo: "

"\n 1. Sim "

"\n 2. Nao, desejo fechar \n\n");

scanf("%d", &opcao);

}while (opcao!=2);

//Final de codigo

system("pause");

}

Se puder me ajudar ficarei grato

  • Curtir 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






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

×