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; }
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; }
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; }