Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* HEX:HEX_FILE_CONVERTER 2014-02-02 v1.0 *
- * file:main.c *
- * Compile:gcc -o HEXConverter main.c *
- * gcc(1):http://gcc.gnu.org/releases.html *
- * gcc(2):http://www.bloodshed.net/download.html *
- * INSPERATION:https://www.youtube.com/user/singingbanana/videos *
- * (BUT NO REALLY, AS THIS IS PRETY OBIOUS) *
- * Credits:w2ch.org-Anon */
- #include <stdio.h> //FILE, fopen(), fprintf(), fclose(), perror(), fgetc(), fseek(), ftell()
- int main(int argc, char **argv)
- {
- if(argc!=2) fprintf(stdout, "To many or to few arguments. Usage:%s InputFile", argv[0]);
- else
- {
- FILE *fpInput;
- fpInput = fopen(argv[1],"rb");
- if(fpInput==NULL)
- {
- fprintf(stderr, "ERORR1:input.txt(%s) could not be opened\n", argv[1]);
- return 1;
- }
- /* ---------------------------------------------------------------------- */
- {
- /**/
- char cCounter=0;
- char cTemp;
- /**/
- char unsigned cHexInputCharecter;
- while((cHexInputCharecter=(char unsigned)fgetc(fpInput))!=(char unsigned)EOF)
- switch(cHexInputCharecter&240)
- {
- case 160:
- fprintf(stdout, "A");
- goto lable1;
- case 176:
- fprintf(stdout, "B");
- goto lable1;
- case 192:
- fprintf(stdout, "C");
- goto lable1;
- case 208:
- fprintf(stdout, "D");
- goto lable1;
- case 224:
- fprintf(stdout, "E");
- goto lable1;
- case 240:
- fprintf(stdout, "F");
- goto lable1;
- default:
- fprintf(stdout, "%d", (cHexInputCharecter&240)/16);
- lable1:
- switch(cHexInputCharecter&15)
- {
- case 10:
- fprintf(stdout, "A");
- break;
- case 11:
- fprintf(stdout, "B");
- break;
- case 12:
- fprintf(stdout, "C");
- break;
- case 13:
- fprintf(stdout, "D");
- break;
- case 14:
- fprintf(stdout, "E");
- break;
- case 15:
- fprintf(stdout, "F");
- break;
- default:
- fprintf(stdout, "%d", cHexInputCharecter&15);
- break;
- }
- /**/
- fprintf(stdout, " ");
- ++cCounter;
- if(cCounter&4)
- {
- cCounter+=8;
- cCounter-=4;
- if(cCounter&32)
- {
- fprintf(stdout, "|");
- fseek(fpInput, ftell(fpInput)-16, SEEK_SET);
- for(cTemp=16; cTemp--;) if((cCounter=(char)fgetc(fpInput))=='\n') fprintf(stdout, "\\n");
- else if(cCounter==13 || cCounter==10) fprintf(stdout, " ");
- else fprintf(stdout, "%c", cCounter);
- fprintf(stdout, "\n");
- cCounter=0;
- }
- else fprintf(stdout, " ");
- }
- /**/
- break;
- }
- /**/
- fprintf(stdout, "|");
- cTemp=3&cCounter;
- cTemp+=4*((56&cCounter)/8);
- fseek(fpInput, ftell(fpInput)-cTemp, SEEK_SET);
- for(cTemp; cTemp--;) if((cCounter=(char)fgetc(fpInput))=='\n') fprintf(stdout, "\\n");
- else if(cCounter==13 || cCounter==10) fprintf(stdout, " ");
- else fprintf(stdout, "%c", cCounter);
- /**/
- }
- /* ---------------------------------------------------------------------- */
- if(fclose(fpInput)==EOF) fprintf(stderr, "ERORR2:fclose(%s) failed", argv[1]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment