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

Descobrindo Informações Sobre Arquivos!


Heldinho

Pergunta

Bom pessoal.. hj eu estava programando, programando.. até que me deu vontade de fazer uma header com funções pra pegar informações de arquivos, como Nome, Extenção, e o Tipo do arquivo(Descrição da Extenção)...Bom...

Primeiro Passo: Copie o Código abaixo e salve como "filelib.h" na sua pasta Include

/* ----------------------------------------------------------- */
/*  Filelib.h é uma Criação de Helder de Oliveira Gomes Filho. */
/* ©2003-2005 WHBR Corporation.                                */
/* ----------------------------------------------------------- */
/* ------- Função getfname ---------------------------- */
/* Esta função retorna o nome do arquivo sem a extenção.*/
/*      	*/
/* Exemplo:      */
/* char file[15];    	*/
/* sprintf(file,"arquivo.exe";    */
/* printf("%s",getfname(file));    */
/*      	*/
/* ---------------------------------------------------- */

char *getfname(char *string2){
int i=0;
int ii=0;
char string[500];
char *string3;
sprintf(string,"%s",string2);
while(string[i] != NULL){
i++;
}
i=i-4;
while(ii<i){
string[ii] = string[ii];
ii++;
}
string[ii] = NULL;
string[ii+1] = NULL;
string[ii+2] = NULL;
string[ii+3] = NULL;
string3 = string;
return string3;
}

/* ------- Função getfext ----------------------------- */
/* Esta função retorna a extenção do arquivo            */
/*      	*/
/* Exemplo:      */
/* char file[15];    	*/
/* sprintf(file,"arquivo.exe";    */
/* printf("%s",getfext(file));    */
/*      	*/
/* ---------------------------------------------------- */

char *getfext(char *string2){
int i=0;
int ii=0;
int iii=0;
int a=0;
char string[500];
char *string3;
sprintf(string,"%s",string2);
while(string[i] != NULL){
i++;
ii++;
a++;
}
i=i-4;
a=a-4;
i++;
while(i<ii){
string[iii] = string[i];
i++;
iii++;
}
a=3;
while(a<ii){
string[a] = NULL;
a++;
}
string3 = string;
return string3;
}

/* ------- Função getftype----------------------------- */
/* Esta função retorna a descrição do tipo do arquivo   */
/* Modo de uso: getftype(char *extencao);  */
/* Exemplo:      */
/* char file[15];    	*/
/* sprintf(file,"arquivo.exe";    */
/* printf("O arquivo é %s\n",getftype(getfext(file)));	*/
/* printf("Extencao GAW são de '%s'",getftype("GAW"));	*/
/* ---------------------------------------------------- */
char *getftype(char *string2){
char string[3];
char string3[100];
char *string4;
sprintf(string,"%s",string2);
sprintf(string3,"Arquivo %s",string2);
if(strcmp(string,"exe") == 0 || strcmp(string,"EXE") == 0){
sprintf(string3,"Executavel");
}
if(strcmp(string,"bmp") == 0 || strcmp(string,"BMP") == 0){
sprintf(string3,"Imagem Bitmap");
}
if(strcmp(string,"jpg") == 0 || strcmp(string,"JPG") == 0){
sprintf(string3,"Imagem JPEG");
}
if(strcmp(string,"png") == 0 || strcmp(string,"PNG") == 0){
sprintf(string3,"Imagem PNG");
}
if(strcmp(string,"gif") == 0 || strcmp(string,"GIF") == 0){
sprintf(string3,"Imagem GIF");
}
if(strcmp(string,"ppm") == 0 || strcmp(string,"PPM") == 0){
sprintf(string3,"Imagem PPM");
}
if(strcmp(string,"zip") == 0 || strcmp(string,"ZIP") == 0){
sprintf(string3,"Arquivo ZIP");
}
if(strcmp(string,"rar") == 0 || strcmp(string,"RAR") == 0){
sprintf(string3,"Arquivo RAR");
}
if(strcmp(string,"ico") == 0 || strcmp(string,"ICO") == 0){
sprintf(string3,"Icone");
}
if(strcmp(string,"sys") == 0 || strcmp(string,"SYS") == 0){
sprintf(string3,"Arquivo de Sistema");
}
if(strcmp(string,"dll") == 0 || strcmp(string,"DLL") == 0){
sprintf(string3,"Extenção de Aplicativo");
}
if(strcmp(string,"doc") == 0 || strcmp(string,"DOC") == 0){
sprintf(string3,"Documento compativel com o WORD");
}
if(strcmp(string,"rtf") == 0 || strcmp(string,"RTF") == 0){
sprintf(string3,"Documento compativel com o WORD");
}
if(strcmp(string,"txt") == 0 || strcmp(string,"TXT") == 0){
sprintf(string3,"Arquivo de Texto");
}
if(strcmp(string,"com") == 0 || strcmp(string,"COM") == 0){
sprintf(string3,"Executavel");
}
if(strcmp(string,"cfg") == 0 || strcmp(string,"CFG") == 0){
sprintf(string3,"Arquivo de Configuração");
}
if(strcmp(string,"wav") == 0 || strcmp(string,"WAV") == 0){
sprintf(string3,"Música WAV");
}
if(strcmp(string,"mp3") == 0 || strcmp(string,"MP3") == 0){
sprintf(string3,"Música MP3");
}
if(strcmp(string,"oc3") == 0 || strcmp(string,"OC3") == 0){
sprintf(string3,"Música OC3");
}
if(strcmp(string,"mid") == 0 || strcmp(string,"MID") == 0){
sprintf(string3,"Música MIDI");
}
if(strcmp(string,"xls") == 0 || strcmp(string,"XLS") == 0){
sprintf(string3,"Tabela Compativel com o Excell");
}
if(strcmp(string,"asf") == 0 || strcmp(string,"ASF") == 0){
sprintf(string3,"Mídia ASF");
}
if(strcmp(string,"asx") == 0 || strcmp(string,"ASX") == 0){
sprintf(string3,"Mídia ASX");
}
if(strcmp(string,"mpg") == 0 || strcmp(string,"MPG") == 0){
sprintf(string3,"Filme MPEG");
}
if(strcmp(string,"avi") == 0 || strcmp(string,"AVI") == 0){
sprintf(string3,"Filme AVI");
}
if(strcmp(string,"eva") == 0 || strcmp(string,"EVA") == 0){
sprintf(string3,"Filme EVA");
}
if(strcmp(string,"psd") == 0 || strcmp(string,"PSD") == 0){
sprintf(string3,"Data do Photoshop");
}
if(strcmp(string,"pdf") == 0 || strcmp(string,"PDF") == 0){
sprintf(string3,"Documento PDF");
}
if(strcmp(string,"cpp") == 0 || strcmp(string,"CPP") == 0){
sprintf(string3,"Source C++");
}
if(strcmp(string,"asm") == 0 || strcmp(string,"ASM") == 0){
sprintf(string3,"Source ASM");
}
if(strcmp(string,"mac") == 0 || strcmp(string,"MAC") == 0){
sprintf(string3,"Source ASM");
}
if(strcmp(string,"iso") == 0 || strcmp(string,"ISO") == 0){
sprintf(string3,"Imagem de CD");
}
if(strcmp(string,"img") == 0 || strcmp(string,"IMG") == 0){
sprintf(string3,"Imagem de Disquete");
}
if(strcmp(string,"dsk") == 0 || strcmp(string,"DSK") == 0){
sprintf(string3,"Imagem de Disquete 730k");
}
if(strcmp(string,"bin") == 0 || strcmp(string,"BIN") == 0){
sprintf(string3,"Arquivo Binário");
}



string4 = string3;
return string4;
}
Bom.. Aqui vem um programa-exemplo sobre como usar a filelib.h:
#include <stdio.h>
#include <filelib.h>


void main(void){
int i;
int ii;
char file[10];
char filename[10];

/* coloca o nome do arquivo e a extencao na variavel file */
sprintf(file,"Programa.exe");

/* Guarda o nome do arquivo em uma variavel */
sprintf(filename,"%s",getfname(file));

/* mostra o nome do arquivo com a extencao(variavel file) */
printf("Nome Completo: %s\n",file);

/* Mostra o nome do arquivo sem a extencao */
printf("Nome: %s\n",getfname(file));

/* mostra a extencao do arquivo */
printf("Extencao: %s\n",getfext(file));

/* compara a extencao do arquivo */
printf("Tipo: %s",getftype(getfext(file)));

/* mostra o nome do arquivo que estava guardado na variavel */
printf("\nName antigo: %s",filename);
}

Bom.. É isso aí.. Eu gostaria que se alguém usar essas funções, colocasse meu nome nos créditos... se não quizer, não precisa deixar de usar por causa disso.. eu fiz elas mais pra ajudar quem está precisando..Hmm.. Podem dizer sinceramente o que acharam delas!! Estou aki pra arrumar as besteiras que estão nelas!! smile.gif Até + !! laugh.gif

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Orlando, valeu pelos elogios....

Ricardo, que compilador você usa?

é só fazer como eu disse no tópico acima.. salvar a filelib.h na pasta include, ai você pode compilar o programa-exemplo que tá lá tb ^^! laugh.gif Até +!!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest daniel182

opa ... não me lembro bem mas existe uma funcao em C que retorna a string com tudo em maisculo ou minusculo .... acho que é "strcase" ... daí da pra melhorar sua funcao !!!!

(strcmp(string,"bin") == 0 || strcmp(string,"BIN") == 0)

(strcmp(strcase(string),"BIN") == 0)

+ em todo caso !!! já tem funcoes desse tipo prontas no C BUILDER ....

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Heldinho, Talvez seja bom voce licenciar o seu codigo sob a licenca LGPL de software livre. Ela garante o que voce quer (que as pessoas possam usar o seu codigo a vontade e para qualquer fim) e voce estara contribuindo para o crescimento do software livre. o Site que explica a LGPL é:

http://www.gnu.org/licenses/lgpl.html

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
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...