Ir para conteúdo
Fórum Script Brasil
  • 0

Alguém sabe como transformar o nome do arquivo em variável? Linguagem C


Aguiarti

Pergunta

Pessoal, to tentando criar um programa simples de livro caixa, onde o principal objetivo é armazenar as entradas de dinheiro diárias.

A minha duvida é porque eu quero que o nome do arquivo .txt mude de acordo com o dia.

Tentei fazer uma gambiarra pedindo pro usuario colocar a data e tentar transformar a palavra antes de txt em variavel, mas eu não consigo.

alguém tem alguma sugestao pra me ajudar ? Obrigado desde já

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
#include <stdlib.h>
#include <stdio.h>
//#include <sys/types.h>
#include <dirent.h>

void error ( const char *s );

int main() {
    DIR *dir;
    struct dirent *ent;
    dir = opendir ( "." );
    
    if ( dir == NULL ) error ( "não posso abrir a pasta" );


    while ( ( ent = readdir ( dir ) ) != NULL ) {
        /* Vai retornar a pasta atual (.) e a anterior (..), como nas ls */
        if ( ( strcmp ( ent->d_name, "." ) !=  ) && ( strcmp ( ent->d_name, ".." ) !=  ) ) {
            printf("%s\n", ent->d_name );
        }
    }
    
    closedir ( dir );
    
    return EXIT_SUCCESS;
}

A struct ent(que é um ponteiro) possui uma variável interna que trata-se nada mais nada menos que o nome de cada arquivo que foi lido um por um,, se souber processar esse string é só comparar com o nome do arquivo e vuelá.

O que você vai ver é a lista de todos os arquivos que estão na mesma pasta, imagina que você tem algo como:
"contabilidade 19 05 16.txt"

... é só usar sscanf com seus devidos especificadores para "crivar" esa string e tranformarla em algo como:
struct {
char nome[100]
int dia;
int mes;
int ano;
char tipo[10]; //txt
}Dados;
...Dai é só pegar todos os arquivos que saírem com o nome Dados.nome e se bater com "contabilidade" é só comparar dia, mes e ano para obter seu arquivo desejado. Claro que requer um pouco de trabalho, mas é relativamente fácil faze-lo.

Espero que sirva de ajuda...
Sorte!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...