Thread: need help in passing filename as a parameter

  1. #1
    Registered User
    Join Date
    Aug 2013
    Posts
    1

    need help in passing filename as a parameter

    Hi Folks..
    I need your help with following snippet :
    Code:
    #include <stdio.h>
    void  ASCII_to_EBCDIC( size_t, unsigned char *);
    void  EBCDIC_to_ASCII( size_t, unsigned char *);
    void to_ASCII(unsigned char *);
    void to_EBCDIC(unsigned char *);
    /* conversion tables */
    static  unsigned char
            ASCII_translate_EBCDIC [ 256 ] =
                {
                0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
                0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
                0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
                0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
                0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D,
                0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
                0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8,
                0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
                0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8,
                0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
                0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
                0xE8, 0xE9, 0xAD, 0xE0, 0xBD, 0x5F, 0x6D,
                0x7D, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88,
                0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
                0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
                0xA8, 0xA9, 0xC0, 0x6A, 0xD0, 0xA1, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B,
                0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B } ;
    
    
    static  unsigned char
            EBCDIC_translate_ASCII [ 256 ] =
                {
                0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
                0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
                0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
                0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
                0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
                0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
                0x2E, 0x2E, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
                0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x2E, 0x3F,
                0x20, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
                0x2E, 0x2E, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
                0x26, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
                0x2E, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0x5E,
                0x2D, 0x2F, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
                0x2E, 0x7C, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
                0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
                0x2E, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
                0x2E, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
                0x69, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
                0x2E, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
                0x72, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
                0x2E, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
                0x7A, 0x2E, 0x2E, 0x2E, 0x5B, 0x2E, 0x2E,
                0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
                0x2E, 0x2E, 0x2E, 0x2E, 0x5D, 0x2E, 0x2E,
                0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
                0x49, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
                0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51,
                0x52, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
                0x5C, 0x2E, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
                0x5A, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
                0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
                0x39, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E } ;
    
    
    void to_ASCII(unsigned char *s){ // single string
           register unsigned char *buf;
           for(buf=s;*buf;buf++) *buf=EBCDIC_translate_ASCII[*buf];
           return;
    }
    void to_EBCDIC(unsigned char *s){// single string
           register unsigned char *buf;
           for(buf=s;*buf;buf++) *buf=ASCII_translate_EBCDIC[*buf];
           return;
    }
    
    
    void EBCDIC_to_ASCII(size_t len,unsigned char *s){ // full buffer
           register unsigned char *buf;
           register int j;
           for(buf=s,j=len;j;j--,buf++) *buf=EBCDIC_translate_ASCII[*buf];
           return;
    }
    void ASCII_to_EBCDIC(size_t len,unsigned char *s){ // full buffer
          register unsigned char *buf;
          register int j;
          for (buf=s,j=len;j;j--,buf++) *buf = ASCII_translate_EBCDIC[*buf]);
          return;
    }
    int main (void) {
        char str[] = "\xc8\x85\x93\x93\x96\x40\xa3\x88\x85\x99\x85\x5a";
        inSituEbcdicToAscii (str);
        printf ("%s\n", str);
        return 0;
    }
    The above snippet is for a buffer/string, where as i want to pass file name as a parameter and want function to process the file line by line,can anyone plz help?

  2. #2
    Hurry Slowly vart's Avatar
    Join Date
    Oct 2006
    Location
    Rishon LeZion, Israel
    Posts
    6,793
    C File I/O Tutorial - Cprogramming.com
    FAQ > Get a line of text from the user/keyboard (C) - Cprogramming.com

    In the second link sample you will need to replace stdin with your file pointer
    All problems in computer science can be solved by another level of indirection,
    except for the problem of too many layers of indirection.
    David J. Wheeler

  3. #3
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    38,193
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. fopen filename parameter
    By stanlvw in forum C Programming
    Replies: 5
    Last Post: 06-14-2008, 11:37 PM
  2. Passing filename as a string
    By qxcdfg in forum C++ Programming
    Replies: 2
    Last Post: 03-11-2008, 06:46 AM
  3. Ifstream filename passing problem
    By tms43 in forum C++ Programming
    Replies: 2
    Last Post: 11-12-2006, 09:33 AM
  4. how to have the filename as a command line parameter.
    By Frank_Rye in forum C Programming
    Replies: 2
    Last Post: 10-17-2005, 06:18 AM
  5. passing a filename as a parameter..
    By flightsimdude in forum C Programming
    Replies: 2
    Last Post: 09-23-2003, 10:07 AM