Пример #1
0
int NsaReader::openForConvert( char *nsa_name, int archive_type )
{
    sar_flag = false;
    if ( ( archive_info.file_handle = ::fopen( nsa_name, "rb" ) ) == NULL ){
        fprintf( stderr, "can't open file %s\n", nsa_name );
        return -1;
    }

    readArchive( &archive_info, archive_type );

    return 0;
}
Пример #2
0
int NsaReader::open( char *nsa_path, int archive_type )
{
    int i;
    char archive_name[256], archive_name2[256];

    if ( !SarReader::open( "arc.sar" ) ) return 0;
    
    sar_flag = false;
    if ( !nsa_path ) nsa_path = "";

    sprintf( archive_name, "%s%s.%s", nsa_path, NSA_ARCHIVE_NAME, nsa_archive_ext );
    if ( ( archive_info.file_handle = fopen( archive_name, "rb" ) ) == NULL ){
        fprintf( stderr, "can't open file %s\n", archive_name );
        return -1;
    }

    archive_info.file_name = new char[strlen(archive_name)+1];
    memcpy(archive_info.file_name, archive_name, strlen(archive_name)+1);
    
    readArchive( &archive_info, archive_type );
    
    for ( i=0 ; i<MAX_EXTRA_ARCHIVE ; i++ ){
        sprintf( archive_name2, NSA_ARCHIVE_NAME2, i+1 );
        sprintf( archive_name, "%s%s.%s", nsa_path, archive_name2, nsa_archive_ext );
        if ( ( archive_info2[i].file_handle = fopen( archive_name, "rb" ) ) == NULL ){
            return 0;
        }
        
        archive_info2[i].file_name = new char[strlen(archive_name2)+1];
        memcpy(archive_info2[i].file_name, archive_name2, strlen(archive_name2)+1);
        
        num_of_nsa_archives = i+1;
        readArchive( &archive_info2[i], archive_type );
    }

    return 0;
}
Пример #3
0
int SarReader::open( const char *name )
{
    ArchiveInfo* info = new ArchiveInfo();

    if ( (info->file_handle = fopen( name, "rb" ) ) == NULL ){
        delete info;
        return -1;
    }

    info->file_name = new char[strlen(name)+1];
    memcpy(info->file_name, name, strlen(name)+1);
    
    readArchive( info );

    last_archive_info->next = info;
    last_archive_info = last_archive_info->next;
    num_of_sar_archives++;

    return 0;
}