All pastes #198252 Raw Edit

Anonymous

public cpp v1 · immutable
#198252 ·published 2006-10-11 21:15 UTC
rendered paste body
int TParseEngine::decode (ifstream& file_handle, AnsiString file_name, ifstream& dff_handle,                          TList* &list, AnsiString* &tags, D_TYPES* &types, unsigned int &counter,                          AnsiString &support){        list->Clear();        if (parse_dff(dff_handle, tags, types, counter, file_name, support) == 0)//nuskaitome dff informacij&#261;                return 0;        unsigned int records = read_uint32(file_handle);                        //nuskaitome &#303;ra&#353;&#371; kiek&#303;        for (unsigned int i = 0; i < records; i++) {                            //formatuojame duomenis pagal tagus ir tipus                dec_data = new TStringList;                                     //i&#353;valoma pabaigoje                dec_data->Clear();                for (unsigned int j = 0; j < counter; j++) {                        switch (types[j]) {                                case D_INT: {                                   //nuskaitome INT tip&#261;                                        int int32_data = read_int32(file_handle);                                        dec_data->Add(AnsiString(tags[j])+"="+IntToStr(int32_data));                                }                                break;                                case D_UINT: {                                  //nuskaitome UINT tip&#261;                                        unsigned int uint32_data = read_int32(file_handle);                                        dec_data->Add(AnsiString(tags[j])+"="+IntToStr(uint32_data));                                }                                break;                                case D_UNICODE: {                               //nuskaitome UNICODE tip&#261;                                        char* unicode_data = read_unicode(file_handle);                                        dec_data->Add(AnsiString(tags[j])+"="+ AnsiString(unicode_data));                                        delete [] unicode_data;                                }                                break;                                case D_ASCF: {                                  //nuskaitome ASCF tip&#261;                                        char* ASCF_data = read_ASCF(file_handle);                                        dec_data->Add(AnsiString(tags[j])+"="+AnsiString(ASCF_data));                                        delete [] ASCF_data;                                }                                break;                                case D_CNTR: {                                  //nuskaitome CNTR tip&#261;                                        unsigned char length;                                        int* CNTR_data = read_CNTR(file_handle, length);                                        dec_data->Add(AnsiString(tags[j])+"="+IntToStr(length)); //&#303;ra&#353;ome CNTR ilg&#303;                                        for (int i = 0; i < length; i++)                                                dec_data->Add(AnsiString(tags[j])+IntToStr(i)+"="+IntToStr(CNTR_data[i]));  //sura&#353;ome CNTR duomenis                                        delete [] CNTR_data;                                }                                break;                                case D_FLOAT: {                                 //nuskaitome FLOAT tip&#261;                                        float FLOAT_data = read_float(file_handle);                                        dec_data->Add(AnsiString(tags[j])+"="+FloatToStr(FLOAT_data));                                }                                break;                                case D_BYTE: {                                  //nuskaitome CHAR tip&#261;                                        char BYTE_data = read_int8(file_handle);                                        dec_data->Add(AnsiString(tags[j])+"="+IntToStr(BYTE_data));                                }                                break;                                case D_HEX: {                                   //nuskaitome HEX tip&#261;                                        char* HEX_data = read_hex(file_handle);                                        dec_data->Add(AnsiString(tags[j])+"="+AnsiString(HEX_data));                                        delete [] HEX_data;                                }                                break;                                case D_CHEX: {                                  //nuskaitome CHEX tip&#261;                                        char* CHEX_data = read_chex(file_handle);                                        dec_data->Add(AnsiString(tags[j])+"="+AnsiString(CHEX_data));                                        delete [] CHEX_data;                                }                                break;                        };                }                list->Add(dec_data);        }        return 1;}