Pular para o conteúdo

Organizador de filmes para o IMDB

Olá, como um grande fã de filmes estou sempre de olho no IMDB. Recentemente eu estava dando uma olhada no top 250 para procurar alguns bons filmes e senti a falta de um filtro, principalmente por datas. Então como um bom usuário de GNU/Linux, fiz um programa e estou compartilhando.
Renan Samuel da Silva gigatesla boy
Hits: 4.857 Categoria: C/C++ Subcategoria: Manipulação de arquivos
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Olá, como um grande fã de filmes estou sempre de olho no IMDB. Recentemente eu estava dando uma olhada no top 250 para procurar alguns bons filmes e senti a falta de um filtro, principalmente por datas. Então como um bom usuário de GNU/Linux, fiz um programa e estou compartilhando.
Download sorter.c Enviar nova versão

Esconder código-fonte

/* 
 * This program is intended to sort the movies from top250 of imdb acording to
 * the movies date.
 *
 * There is no warranty that this will work and i am not respossibly for any
 * harm that this program may cause(but i doubt it can happen).
 * 
 * I know that there are better ways  to do what this program does, i just was
 * in a hurry to sort the movies and this come in my head fisrt.
 *
 * This is a opensource code and you can do whatever you want with it. Be kind
 * and keep it opensource.
 *
 * You can use curl to download the source code of the page and put that in a
 * file name 'dump' and the run this program.
 *
 * You can compile it using gcc sorter.c -o sorter on terminal and running using
 * ./sorter case  you are using linux. If you use windows, i cannot help you.
 * Case you want to put the output in a file you can do something like
 * ./sorter > top250_sorted_by_year
 *
 * This should work for more pages that are not the top250, i havenot tried.
 *
 * You can emailme on uber.renan@gmail.com to ask anything about this.
 *
 * Use free software and be cool.
 *
 * This was made bye Renan Samuel da Silva
 *
 */

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

typedef struct{
    char name[100];
    int date;
}_movie;

int main(int argc, char *argv[]){
  FILE *file=fopen("dump","rt");
  char c;
  char date[5];
  char name[100];
  int cont=0,pivot,w=0;
  int i,j;

  _movie movie[250];
  _movie tmp;

  while(!feof(file)){
    c=fgetc(file);
    if(c=='('){
      c=fgetc(file);
      if(c>='0' && c<='9'){
        date[0]=c;
        date[1]=fgetc(file);
        date[2]=fgetc(file);
        date[3]=fgetc(file);
        date[4]='
/* 
 * This program is intended to sort the movies from top250 of imdb acording to
 * the movies date.
 *
 * There is no warranty that this will work and i am not respossibly for any
 * harm that this program may cause(but i doubt it can happen).
 * 
 * I know that there are better ways  to do what this program does, i just was
 * in a hurry to sort the movies and this come in my head fisrt.
 *
 * This is a opensource code and you can do whatever you want with it. Be kind
 * and keep it opensource.
 *
 * You can use curl to download the source code of the page and put that in a
 * file name 'dump' and the run this program.
 *
 * You can compile it using gcc sorter.c -o sorter on terminal and running using
 * ./sorter case  you are using linux. If you use windows, i cannot help you.
 * Case you want to put the output in a file you can do something like
 * ./sorter > top250_sorted_by_year
 *
 * This should work for more pages that are not the top250, i havenot tried.
 *
 * You can emailme on uber.renan@gmail.com to ask anything about this.
 *
 * Use free software and be cool.
 *
 * This was made bye Renan Samuel da Silva
 *
 */

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

typedef struct{
    char name[100];
    int date;
}_movie;

int main(int argc, char *argv[]){
  FILE *file=fopen("dump","rt");
  char c;
  char date[5];
  char name[100];
  int cont=0,pivot,w=0;
  int i,j;

  _movie movie[250];
  _movie tmp;

  while(!feof(file)){
    c=fgetc(file);
    if(c=='('){
      c=fgetc(file);
      if(c>='0' && c<='9'){
        date[0]=c;
        date[1]=fgetc(file);
        date[2]=fgetc(file);
        date[3]=fgetc(file);
        date[4]='
/* 
 * This program is intended to sort the movies from top250 of imdb acording to
 * the movies date.
 *
 * There is no warranty that this will work and i am not respossibly for any
 * harm that this program may cause(but i doubt it can happen).
 * 
 * I know that there are better ways  to do what this program does, i just was
 * in a hurry to sort the movies and this come in my head fisrt.
 *
 * This is a opensource code and you can do whatever you want with it. Be kind
 * and keep it opensource.
 *
 * You can use curl to download the source code of the page and put that in a
 * file name 'dump' and the run this program.
 *
 * You can compile it using gcc sorter.c -o sorter on terminal and running using
 * ./sorter case  you are using linux. If you use windows, i cannot help you.
 * Case you want to put the output in a file you can do something like
 * ./sorter > top250_sorted_by_year
 *
 * This should work for more pages that are not the top250, i havenot tried.
 *
 * You can emailme on uber.renan@gmail.com to ask anything about this.
 *
 * Use free software and be cool.
 *
 * This was made bye Renan Samuel da Silva
 *
 */

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

typedef struct{
    char name[100];
    int date;
}_movie;

int main(int argc, char *argv[]){
  FILE *file=fopen("dump","rt");
  char c;
  char date[5];
  char name[100];
  int cont=0,pivot,w=0;
  int i,j;

  _movie movie[250];
  _movie tmp;

  while(!feof(file)){
    c=fgetc(file);
    if(c=='('){
      c=fgetc(file);
      if(c>='0' && c<='9'){
        date[0]=c;
        date[1]=fgetc(file);
        date[2]=fgetc(file);
        date[3]=fgetc(file);
        date[4]='{FONTE}';
        if((strcmp(date,"1|2)")==0) || (strcmp(date,"9)) ")==0))
          continue;
        cont++;
        //printf("%s",date);
        movie[w].date=atoi(date);
        fseek(file,-11,SEEK_CUR);
        c=fgetc(file);
        while(1){
          if(c=='/'){
            c=fgetc(file);
            if(c=='"'){
              c=fgetc(file);
              if(c=='>'){
                pivot=0;
                c=fgetc(file);
                while(c!='<'){
                  name[pivot++]=c;
                  c=fgetc(file);
                }
                name[pivot]='{FONTE}';
                strcpy(movie[w++].name,name);
                break;
              }
            }
          }
          fseek(file,-2,SEEK_CUR);
          c=fgetc(file);
        }
        //printf(" -- %s\n",name);
        fseek(file,17,SEEK_CUR);
      }
    }
  }

  for(i=0;i<250;i++){
    for(j=0;j<249;j++){
      if(movie[j].date<movie[j+1].date){
        tmp=movie[j];
        movie[j]=movie[j+1];
        movie[j+1]=tmp;
      }
    }
  }

  for(i=0;i<250;i++){
    printf("%d - %s\n",movie[i].date,movie[i].name);
  }

  //printf(" -- cont=%d\n",cont);
  fclose(file);
  return EXIT_SUCCESS;
}
';         if((strcmp(date,"1|2)")==0) || (strcmp(date,"9)) ")==0))           continue;         cont++;         //printf("%s",date);         movie[w].date=atoi(date);         fseek(file,-11,SEEK_CUR);         c=fgetc(file);         while(1){           if(c=='/'){             c=fgetc(file);             if(c=='"'){               c=fgetc(file);               if(c=='>'){                 pivot=0;                 c=fgetc(file);                 while(c!='<'){                   name[pivot++]=c;                   c=fgetc(file);                 }                 name[pivot]='
/* 
 * This program is intended to sort the movies from top250 of imdb acording to
 * the movies date.
 *
 * There is no warranty that this will work and i am not respossibly for any
 * harm that this program may cause(but i doubt it can happen).
 * 
 * I know that there are better ways  to do what this program does, i just was
 * in a hurry to sort the movies and this come in my head fisrt.
 *
 * This is a opensource code and you can do whatever you want with it. Be kind
 * and keep it opensource.
 *
 * You can use curl to download the source code of the page and put that in a
 * file name 'dump' and the run this program.
 *
 * You can compile it using gcc sorter.c -o sorter on terminal and running using
 * ./sorter case  you are using linux. If you use windows, i cannot help you.
 * Case you want to put the output in a file you can do something like
 * ./sorter > top250_sorted_by_year
 *
 * This should work for more pages that are not the top250, i havenot tried.
 *
 * You can emailme on uber.renan@gmail.com to ask anything about this.
 *
 * Use free software and be cool.
 *
 * This was made bye Renan Samuel da Silva
 *
 */

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

typedef struct{
    char name[100];
    int date;
}_movie;

int main(int argc, char *argv[]){
  FILE *file=fopen("dump","rt");
  char c;
  char date[5];
  char name[100];
  int cont=0,pivot,w=0;
  int i,j;

  _movie movie[250];
  _movie tmp;

  while(!feof(file)){
    c=fgetc(file);
    if(c=='('){
      c=fgetc(file);
      if(c>='0' && c<='9'){
        date[0]=c;
        date[1]=fgetc(file);
        date[2]=fgetc(file);
        date[3]=fgetc(file);
        date[4]='{FONTE}';
        if((strcmp(date,"1|2)")==0) || (strcmp(date,"9)) ")==0))
          continue;
        cont++;
        //printf("%s",date);
        movie[w].date=atoi(date);
        fseek(file,-11,SEEK_CUR);
        c=fgetc(file);
        while(1){
          if(c=='/'){
            c=fgetc(file);
            if(c=='"'){
              c=fgetc(file);
              if(c=='>'){
                pivot=0;
                c=fgetc(file);
                while(c!='<'){
                  name[pivot++]=c;
                  c=fgetc(file);
                }
                name[pivot]='{FONTE}';
                strcpy(movie[w++].name,name);
                break;
              }
            }
          }
          fseek(file,-2,SEEK_CUR);
          c=fgetc(file);
        }
        //printf(" -- %s\n",name);
        fseek(file,17,SEEK_CUR);
      }
    }
  }

  for(i=0;i<250;i++){
    for(j=0;j<249;j++){
      if(movie[j].date<movie[j+1].date){
        tmp=movie[j];
        movie[j]=movie[j+1];
        movie[j+1]=tmp;
      }
    }
  }

  for(i=0;i<250;i++){
    printf("%d - %s\n",movie[i].date,movie[i].name);
  }

  //printf(" -- cont=%d\n",cont);
  fclose(file);
  return EXIT_SUCCESS;
}
';                 strcpy(movie[w++].name,name);                 break;               }             }           }           fseek(file,-2,SEEK_CUR);           c=fgetc(file);         }         //printf(" -- %s\n",name);         fseek(file,17,SEEK_CUR);       }     }   }   for(i=0;i<250;i++){     for(j=0;j<249;j++){       if(movie[j].date<movie[j+1].date){         tmp=movie[j];         movie[j]=movie[j+1];         movie[j+1]=tmp;       }     }   }   for(i=0;i<250;i++){     printf("%d - %s\n",movie[i].date,movie[i].name);   }   //printf(" -- cont=%d\n",cont);   fclose(file);   return EXIT_SUCCESS; }
';         if((strcmp(date,"1|2)")==0) || (strcmp(date,"9)) ")==0))           continue;         cont++;         //printf("%s",date);         movie[w].date=atoi(date);         fseek(file,-11,SEEK_CUR);         c=fgetc(file);         while(1){           if(c=='/'){             c=fgetc(file);             if(c=='"'){               c=fgetc(file);               if(c=='>'){                 pivot=0;                 c=fgetc(file);                 while(c!='<'){                   name[pivot++]=c;                   c=fgetc(file);                 }                 name[pivot]='
/* 
 * This program is intended to sort the movies from top250 of imdb acording to
 * the movies date.
 *
 * There is no warranty that this will work and i am not respossibly for any
 * harm that this program may cause(but i doubt it can happen).
 * 
 * I know that there are better ways  to do what this program does, i just was
 * in a hurry to sort the movies and this come in my head fisrt.
 *
 * This is a opensource code and you can do whatever you want with it. Be kind
 * and keep it opensource.
 *
 * You can use curl to download the source code of the page and put that in a
 * file name 'dump' and the run this program.
 *
 * You can compile it using gcc sorter.c -o sorter on terminal and running using
 * ./sorter case  you are using linux. If you use windows, i cannot help you.
 * Case you want to put the output in a file you can do something like
 * ./sorter > top250_sorted_by_year
 *
 * This should work for more pages that are not the top250, i havenot tried.
 *
 * You can emailme on uber.renan@gmail.com to ask anything about this.
 *
 * Use free software and be cool.
 *
 * This was made bye Renan Samuel da Silva
 *
 */

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

typedef struct{
    char name[100];
    int date;
}_movie;

int main(int argc, char *argv[]){
  FILE *file=fopen("dump","rt");
  char c;
  char date[5];
  char name[100];
  int cont=0,pivot,w=0;
  int i,j;

  _movie movie[250];
  _movie tmp;

  while(!feof(file)){
    c=fgetc(file);
    if(c=='('){
      c=fgetc(file);
      if(c>='0' && c<='9'){
        date[0]=c;
        date[1]=fgetc(file);
        date[2]=fgetc(file);
        date[3]=fgetc(file);
        date[4]='
/* 
 * This program is intended to sort the movies from top250 of imdb acording to
 * the movies date.
 *
 * There is no warranty that this will work and i am not respossibly for any
 * harm that this program may cause(but i doubt it can happen).
 * 
 * I know that there are better ways  to do what this program does, i just was
 * in a hurry to sort the movies and this come in my head fisrt.
 *
 * This is a opensource code and you can do whatever you want with it. Be kind
 * and keep it opensource.
 *
 * You can use curl to download the source code of the page and put that in a
 * file name 'dump' and the run this program.
 *
 * You can compile it using gcc sorter.c -o sorter on terminal and running using
 * ./sorter case  you are using linux. If you use windows, i cannot help you.
 * Case you want to put the output in a file you can do something like
 * ./sorter > top250_sorted_by_year
 *
 * This should work for more pages that are not the top250, i havenot tried.
 *
 * You can emailme on uber.renan@gmail.com to ask anything about this.
 *
 * Use free software and be cool.
 *
 * This was made bye Renan Samuel da Silva
 *
 */

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

typedef struct{
    char name[100];
    int date;
}_movie;

int main(int argc, char *argv[]){
  FILE *file=fopen("dump","rt");
  char c;
  char date[5];
  char name[100];
  int cont=0,pivot,w=0;
  int i,j;

  _movie movie[250];
  _movie tmp;

  while(!feof(file)){
    c=fgetc(file);
    if(c=='('){
      c=fgetc(file);
      if(c>='0' && c<='9'){
        date[0]=c;
        date[1]=fgetc(file);
        date[2]=fgetc(file);
        date[3]=fgetc(file);
        date[4]='{FONTE}';
        if((strcmp(date,"1|2)")==0) || (strcmp(date,"9)) ")==0))
          continue;
        cont++;
        //printf("%s",date);
        movie[w].date=atoi(date);
        fseek(file,-11,SEEK_CUR);
        c=fgetc(file);
        while(1){
          if(c=='/'){
            c=fgetc(file);
            if(c=='"'){
              c=fgetc(file);
              if(c=='>'){
                pivot=0;
                c=fgetc(file);
                while(c!='<'){
                  name[pivot++]=c;
                  c=fgetc(file);
                }
                name[pivot]='{FONTE}';
                strcpy(movie[w++].name,name);
                break;
              }
            }
          }
          fseek(file,-2,SEEK_CUR);
          c=fgetc(file);
        }
        //printf(" -- %s\n",name);
        fseek(file,17,SEEK_CUR);
      }
    }
  }

  for(i=0;i<250;i++){
    for(j=0;j<249;j++){
      if(movie[j].date<movie[j+1].date){
        tmp=movie[j];
        movie[j]=movie[j+1];
        movie[j+1]=tmp;
      }
    }
  }

  for(i=0;i<250;i++){
    printf("%d - %s\n",movie[i].date,movie[i].name);
  }

  //printf(" -- cont=%d\n",cont);
  fclose(file);
  return EXIT_SUCCESS;
}
';         if((strcmp(date,"1|2)")==0) || (strcmp(date,"9)) ")==0))           continue;         cont++;         //printf("%s",date);         movie[w].date=atoi(date);         fseek(file,-11,SEEK_CUR);         c=fgetc(file);         while(1){           if(c=='/'){             c=fgetc(file);             if(c=='"'){               c=fgetc(file);               if(c=='>'){                 pivot=0;                 c=fgetc(file);                 while(c!='<'){                   name[pivot++]=c;                   c=fgetc(file);                 }                 name[pivot]='
/* 
 * This program is intended to sort the movies from top250 of imdb acording to
 * the movies date.
 *
 * There is no warranty that this will work and i am not respossibly for any
 * harm that this program may cause(but i doubt it can happen).
 * 
 * I know that there are better ways  to do what this program does, i just was
 * in a hurry to sort the movies and this come in my head fisrt.
 *
 * This is a opensource code and you can do whatever you want with it. Be kind
 * and keep it opensource.
 *
 * You can use curl to download the source code of the page and put that in a
 * file name 'dump' and the run this program.
 *
 * You can compile it using gcc sorter.c -o sorter on terminal and running using
 * ./sorter case  you are using linux. If you use windows, i cannot help you.
 * Case you want to put the output in a file you can do something like
 * ./sorter > top250_sorted_by_year
 *
 * This should work for more pages that are not the top250, i havenot tried.
 *
 * You can emailme on uber.renan@gmail.com to ask anything about this.
 *
 * Use free software and be cool.
 *
 * This was made bye Renan Samuel da Silva
 *
 */

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

typedef struct{
    char name[100];
    int date;
}_movie;

int main(int argc, char *argv[]){
  FILE *file=fopen("dump","rt");
  char c;
  char date[5];
  char name[100];
  int cont=0,pivot,w=0;
  int i,j;

  _movie movie[250];
  _movie tmp;

  while(!feof(file)){
    c=fgetc(file);
    if(c=='('){
      c=fgetc(file);
      if(c>='0' && c<='9'){
        date[0]=c;
        date[1]=fgetc(file);
        date[2]=fgetc(file);
        date[3]=fgetc(file);
        date[4]='{FONTE}';
        if((strcmp(date,"1|2)")==0) || (strcmp(date,"9)) ")==0))
          continue;
        cont++;
        //printf("%s",date);
        movie[w].date=atoi(date);
        fseek(file,-11,SEEK_CUR);
        c=fgetc(file);
        while(1){
          if(c=='/'){
            c=fgetc(file);
            if(c=='"'){
              c=fgetc(file);
              if(c=='>'){
                pivot=0;
                c=fgetc(file);
                while(c!='<'){
                  name[pivot++]=c;
                  c=fgetc(file);
                }
                name[pivot]='{FONTE}';
                strcpy(movie[w++].name,name);
                break;
              }
            }
          }
          fseek(file,-2,SEEK_CUR);
          c=fgetc(file);
        }
        //printf(" -- %s\n",name);
        fseek(file,17,SEEK_CUR);
      }
    }
  }

  for(i=0;i<250;i++){
    for(j=0;j<249;j++){
      if(movie[j].date<movie[j+1].date){
        tmp=movie[j];
        movie[j]=movie[j+1];
        movie[j+1]=tmp;
      }
    }
  }

  for(i=0;i<250;i++){
    printf("%d - %s\n",movie[i].date,movie[i].name);
  }

  //printf(" -- cont=%d\n",cont);
  fclose(file);
  return EXIT_SUCCESS;
}
';                 strcpy(movie[w++].name,name);                 break;               }             }           }           fseek(file,-2,SEEK_CUR);           c=fgetc(file);         }         //printf(" -- %s\n",name);         fseek(file,17,SEEK_CUR);       }     }   }   for(i=0;i<250;i++){     for(j=0;j<249;j++){       if(movie[j].date<movie[j+1].date){         tmp=movie[j];         movie[j]=movie[j+1];         movie[j+1]=tmp;       }     }   }   for(i=0;i<250;i++){     printf("%d - %s\n",movie[i].date,movie[i].name);   }   //printf(" -- cont=%d\n",cont);   fclose(file);   return EXIT_SUCCESS; }
';                 strcpy(movie[w++].name,name);                 break;               }             }           }           fseek(file,-2,SEEK_CUR);           c=fgetc(file);         }         //printf(" -- %s\n",name);         fseek(file,17,SEEK_CUR);       }     }   }   for(i=0;i<250;i++){     for(j=0;j<249;j++){       if(movie[j].date<movie[j+1].date){         tmp=movie[j];         movie[j]=movie[j+1];         movie[j+1]=tmp;       }     }   }   for(i=0;i<250;i++){     printf("%d - %s\n",movie[i].date,movie[i].name);   }   //printf(" -- cont=%d\n",cont);   fclose(file);   return EXIT_SUCCESS; }

FileCopy - Copiador de Arquivo de Texto

MyBank

Conta caracteres

Números de caracteres em arquivo

read_pg_conf

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.