00001 #ifndef _WINC_FILENAME
00002 #define _WINC_FILENAME
00003
00004 #include <WXP/Date.h>
00005 #include <WXP/DateVal.h>
00006 #include <WXP/NameConv.h>
00007 #include <WXP/String.h>
00008 #include <WXP/Strings.h>
00009
00010 namespace WXP {
00011 class Filename {
00012 bool is_set;
00013 bool fixed;
00014 char type[30];
00015 String name;
00016 String hdr;
00017 char param[50];
00018 Date date;
00019 Date base_date;
00020
00021 NameConv conv;
00022 Strings files;
00023 int num_file;
00024 int file_off;
00025 int num_type;
00026 int num_dir;
00027
00028 public:
00029 int initParam();
00030 int init();
00031
00032 Filename( const char *nameconv, const char *str );
00033 Filename( const char *nameconv, Date &rdate );
00034 Filename( const char *filename );
00035 Filename();
00036 ~Filename();
00037
00038 int set( const char *nameconv, const char *str );
00039 int set( const char *nameconv, Date &rdate );
00040 int set( const char *filename );
00041 bool isSet();
00042
00043 int setNameConv( const char *nameconv );
00044 int setPath( const char *path );
00045
00046 int setDate( Date &rdate );
00047 int setDate( Date &rdate, const char *param );
00048 int getDate( Date &rdate );
00049 DateVal getDateval();
00050 int getOffset();
00051
00052 int setFixDate( DateVal &rdate );
00053 int setFixDate( const char *str );
00054
00055 int setType( const char *rtype );
00056 const char *getType();
00057
00058 inline int setKey( char ch, const char *str ){ return conv.setKey(ch, str); };
00059 inline const char *getExt(){ return conv.getExt(); };
00060 inline const char *getKey( char ch ){ return conv.getKey(ch); };
00061
00062 int setName( const char *rname );
00063 const char *getName();
00064
00065 int setHeader( const char *rname );
00066 const char *getHeader();
00067 bool validHeader();
00068
00069 bool isFixed();
00070
00071 int setNumFiles( int val );
00072 int setNumFiles( const char *str );
00073 int getNumFiles();
00074 inline int getNumType(){ return num_type; };
00075
00076 int setOutput( bool val );
00077 int setLateLimit( int val );
00078 int setLateDate( Date rdate );
00079 int setBaseDate( Date &rdate );
00080
00081 int checkFile( const char *file );
00082 int setFile( const char *file );
00083 int setFilePrompt( const char *prompt );
00084 bool exist();
00085 int setFile( int ind );
00086
00087 int listFile();
00088 int print();
00089 int printConv();
00090
00091 static const int UNK = 0;
00092 static const int HOURS = 1;
00093 static const int FILES = 2;
00094 };
00095 }
00096 #endif