bool LLFilePickerBase::getMultipleLoadFiles(ELoadFilter filter, std::string const& folder) { if( mLocked ) return FALSE; bool success = FALSE; OSStatus error = noErr; reset(); mNavOptions.optionFlags |= kNavAllowMultipleFiles; { error = doNavChooseDialog(filter, folder); } if (error == noErr) { if (getFileCount()) success = true; if (getFileCount() > 1) mLocked = TRUE; } return success; }
BOOL LLFilePicker::getMultipleOpenFiles(ELoadFilter filter) { if( mLocked ) return FALSE; BOOL success = FALSE; OSStatus error = noErr; reset(); mNavOptions.optionFlags |= kNavAllowMultipleFiles; // Modal, so pause agent send_agent_pause(); { error = doNavChooseDialog(filter); } send_agent_resume(); if (error == noErr) { if (getFileCount()) success = true; if (getFileCount() > 1) mLocked = TRUE; } // Account for the fact that the app has been stalled. LLFrameTimer::updateFrameTime(); return success; }
BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename) { if( mLocked ) return FALSE; BOOL success = FALSE; OSStatus error = noErr; reset(); mNavOptions.optionFlags &= ~kNavAllowMultipleFiles; // Modal, so pause agent send_agent_pause(); { error = doNavSaveDialog(filter, filename); } send_agent_resume(); if (error == noErr) { if (getFileCount()) success = true; } // Account for the fact that the app has been stalled. LLFrameTimer::updateFrameTime(); return success; }
BOOL LLFilePicker::getOpenFile(ELoadFilter filter) { if( mLocked ) return FALSE; BOOL success = FALSE; OSStatus error = noErr; reset(); mNavOptions.optionFlags &= ~kNavAllowMultipleFiles; if(filter == FFLOAD_ALL) // allow application bundles etc. to be traversed; important for DEV-16869, but generally useful { // mNavOptions.optionFlags |= kNavAllowOpenPackages; mNavOptions.optionFlags |= kNavSupportPackages; } // Modal, so pause agent send_agent_pause(); { error = doNavChooseDialog(filter); } send_agent_resume(); if (error == noErr) { if (getFileCount()) success = true; } // Account for the fact that the app has been stalled. LLFrameTimer::updateFrameTime(); return success; }
// <FS:CR Threaded Filepickers> //BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename) BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename, bool blocking) // </FS:CR Threaded Filepickers> { if( mLocked ) return FALSE; BOOL success = FALSE; OSStatus error = noErr; // if local file browsing is turned off, return without opening dialog if ( check_local_file_access_enabled() == false ) { return FALSE; } reset(); mNavOptions.optionFlags &= ~kNavAllowMultipleFiles; // Modal, so pause agent send_agent_pause(); { error = doNavSaveDialog(filter, filename); } send_agent_resume(); if (error == noErr) { if (getFileCount()) success = true; } // Account for the fact that the app has been stalled. LLFrameTimer::updateFrameTime(); return success; }
size_t DirectoryListing::Directory::getTotalFileCount(bool adl) { size_t x = getFileCount(); for(Iter i = directories.begin(); i != directories.end(); ++i) { if(!(adl && (*i)->getAdls())) x += (*i)->getTotalFileCount(adls); } return x; }
BOOL LLFilePicker::getOpenFile( ELoadFilter filter, bool blocking ) { BOOL rtn = FALSE; // if local file browsing is turned off, return without opening dialog if ( check_local_file_access_enabled() == false ) { return FALSE; } gViewerWindow->getWindow()->beforeDialog(); reset(); GtkWindow* picker = buildFilePicker(false, false, "openfile"); if (picker) { std::string caption = LLTrans::getString("load_file_verb") + " "; std::string filtername = ""; switch (filter) { case FFLOAD_WAV: filtername = add_wav_filter_to_gtkchooser(picker); break; case FFLOAD_ANIM: filtername = add_anim_filter_to_gtkchooser(picker); break; case FFLOAD_COLLADA: filtername = add_collada_filter_to_gtkchooser(picker); break; case FFLOAD_IMAGE: filtername = add_imageload_filter_to_gtkchooser(picker); break; case FFLOAD_SCRIPT: filtername = add_script_filter_to_gtkchooser(picker); break; case FFLOAD_DICTIONARY: filtername = add_dictionary_filter_to_gtkchooser(picker); break; default:; break; } caption += filtername; gtk_window_set_title(GTK_WINDOW(picker), caption.c_str()); gtk_widget_show_all(GTK_WIDGET(picker)); gtk_main(); rtn = (getFileCount() == 1); } gViewerWindow->getWindow()->afterDialog(); return rtn; }
// <FS:CR Threaded Filepickers> //BOOL LLFilePicker::getMultipleOpenFiles(ELoadFilter filter) BOOL LLFilePicker::getMultipleOpenFiles(ELoadFilter filter, bool blocking) // </FS:CR Threaded Filepickers> { if( mLocked ) return FALSE; BOOL success = FALSE; // if local file browsing is turned off, return without opening dialog if ( check_local_file_access_enabled() == false ) { return FALSE; } OSStatus error = noErr; reset(); mNavOptions.optionFlags |= kNavAllowMultipleFiles; // Modal, so pause agent // <FS:CR Threaded Filepickers> { send_agent_pause(); } // </FS:CR Threaded Filepickers> { error = doNavChooseDialog(filter); } // <FS:CR Threaded Filepickers> { send_agent_resume(); } // </FS:CR Threaded Filepickers> if (error == noErr) { if (getFileCount()) success = true; if (getFileCount() > 1) mLocked = true; } // Account for the fact that the app has been stalled. LLFrameTimer::updateFrameTime(); return success; }
const std::string LLFilePicker::getNextFile() { if (mCurrentFile >= getFileCount()) { mLocked = FALSE; return std::string(); } else { return mFiles[mCurrentFile++]; } }
const std::string LLFilePicker::getCurFile() { if (mCurrentFile >= getFileCount()) { mLocked = false; return std::string(); } else { return mFiles[mCurrentFile]; } }
BOOL LLFilePicker::getOpenFile(ELoadFilter filter, bool blocking) { if( mLocked ) return FALSE; BOOL success = FALSE; // if local file browsing is turned off, return without opening dialog if ( check_local_file_access_enabled() == false ) { return FALSE; } OSStatus error = noErr; reset(); mNavOptions.optionFlags &= ~kNavAllowMultipleFiles; if(filter == FFLOAD_ALL) // allow application bundles etc. to be traversed; important for DEV-16869, but generally useful { // mNavOptions.optionFlags |= kNavAllowOpenPackages; mNavOptions.optionFlags |= kNavSupportPackages; } if (blocking) { // Modal, so pause agent send_agent_pause(); } { error = doNavChooseDialog(filter); } if (error == noErr) { if (getFileCount()) success = true; } if (blocking) { send_agent_resume(); // Account for the fact that the app has been stalled. LLFrameTimer::updateFrameTime(); } return success; }
BOOL LLFilePicker::getOpenFile( ELoadFilter filter ) { BOOL rtn = FALSE; gViewerWindow->mWindow->beforeDialog(); reset(); GtkWindow* picker = buildFilePicker(false, false, "openfile"); if (picker) { std::string caption = LLTrans::getString("load_file_verb") + " "; std::string filtername = ""; switch (filter) { case FFLOAD_WAV: filtername = add_wav_filter_to_gtkchooser(picker); break; case FFLOAD_ANIM: filtername = add_bvh_filter_to_gtkchooser(picker); break; case FFLOAD_IMAGE: filtername = add_imageload_filter_to_gtkchooser(picker); break; case FFLOAD_XML: filtername = add_xml_filter_to_gtkchooser(picker); break; case FFLOAD_CSV: filtername = add_csv_filter_to_gtkchooser(picker); break; default:; break; } caption += filtername; gtk_window_set_title(GTK_WINDOW(picker), caption.c_str()); gtk_widget_show_all(GTK_WIDGET(picker)); gtk_main(); rtn = (getFileCount() == 1); } gViewerWindow->mWindow->afterDialog(); return rtn; }
bool LLFilePickerBase::getSaveFile(ESaveFilter filter, std::string const& filename, std::string const& folder) { if( mLocked ) return FALSE; bool success = FALSE; OSStatus error = noErr; reset(); mNavOptions.optionFlags &= ~kNavAllowMultipleFiles; { error = doNavSaveDialog(filter, filename, folder); } if (error == noErr) { if (getFileCount()) success = true; } return success; }
BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename, bool blocking ) { BOOL rtn = FALSE; // if local file browsing is turned off, return without opening dialog if ( check_local_file_access_enabled() == false ) { return FALSE; } gViewerWindow->getWindow()->beforeDialog(); reset(); GtkWindow* picker = buildFilePicker(true, false, "savefile"); if (picker) { std::string suggest_name = "untitled"; std::string suggest_ext = ""; std::string caption = LLTrans::getString("save_file_verb") + " "; switch (filter) { case FFSAVE_WAV: caption += add_wav_filter_to_gtkchooser(picker); suggest_ext = ".wav"; break; case FFSAVE_TGA: caption += add_simple_pattern_filter_to_gtkchooser (picker, "*.tga", LLTrans::getString("targa_image_files") + " (*.tga)"); suggest_ext = ".tga"; break; case FFSAVE_BMP: caption += add_simple_mime_filter_to_gtkchooser (picker, "image/bmp", LLTrans::getString("bitmap_image_files") + " (*.bmp)"); suggest_ext = ".bmp"; break; case FFSAVE_AVI: caption += add_simple_mime_filter_to_gtkchooser (picker, "video/x-msvideo", LLTrans::getString("avi_movie_file") + " (*.avi)"); suggest_ext = ".avi"; break; case FFSAVE_ANIM: caption += add_simple_pattern_filter_to_gtkchooser (picker, "*.xaf", LLTrans::getString("xaf_animation_file") + " (*.xaf)"); suggest_ext = ".xaf"; break; case FFSAVE_XML: caption += add_simple_pattern_filter_to_gtkchooser (picker, "*.xml", LLTrans::getString("xml_file") + " (*.xml)"); suggest_ext = ".xml"; break; case FFSAVE_RAW: caption += add_simple_pattern_filter_to_gtkchooser (picker, "*.raw", LLTrans::getString("raw_file") + " (*.raw)"); suggest_ext = ".raw"; break; case FFSAVE_J2C: caption += add_simple_mime_filter_to_gtkchooser (picker, "images/jp2", LLTrans::getString("compressed_image_files") + " (*.j2c)"); suggest_ext = ".j2c"; break; case FFSAVE_SCRIPT: caption += add_script_filter_to_gtkchooser(picker); suggest_ext = ".lsl"; break; // <FS:CR> Export filter case FFSAVE_EXPORT: caption += add_export_filter_to_gtkchooser(picker); suggest_ext = ".oxp"; break; // </FS:CR> default:; break; } gtk_window_set_title(GTK_WINDOW(picker), caption.c_str()); if (filename.empty()) { suggest_name += suggest_ext; gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER(picker), suggest_name.c_str()); } else { gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER(picker), filename.c_str()); } gtk_widget_show_all(GTK_WIDGET(picker)); gtk_main(); rtn = (getFileCount() == 1); } gViewerWindow->getWindow()->afterDialog(); return rtn; }
bool LLFilePickerBase::getSaveFile(ESaveFilter filter, std::string const& filename, std::string const& folder) { bool rtn = FALSE; //gViewerWindow->mWindow->beforeDialog(); reset(); GtkWindow* picker = buildFilePicker(true, false, folder); if (picker) { std::string suggest_name = "untitled"; std::string suggest_ext = ""; std::string caption = LLTrans::getString("save_file_verb") + " "; switch (filter) { case FFSAVE_WAV: caption += add_wav_filter_to_gtkchooser(picker); suggest_ext = ".wav"; break; case FFSAVE_TGA: caption += add_simple_pattern_filter_to_gtkchooser (picker, "*.tga", LLTrans::getString("targa_image_files") + " (*.tga)"); suggest_ext = ".tga"; break; case FFSAVE_BMP: caption += add_simple_mime_filter_to_gtkchooser (picker, "image/bmp", LLTrans::getString("bitmap_image_files") + " (*.bmp)"); suggest_ext = ".bmp"; break; case FFSAVE_AVI: caption += add_simple_mime_filter_to_gtkchooser (picker, "video/x-msvideo", LLTrans::getString("avi_movie_file") + " (*.avi)"); suggest_ext = ".avi"; break; case FFSAVE_ANIM: caption += add_simple_pattern_filter_to_gtkchooser (picker, "*.xaf", LLTrans::getString("xaf_animation_file") + " (*.xaf)"); suggest_ext = ".xaf"; break; case FFSAVE_XML: caption += add_simple_pattern_filter_to_gtkchooser (picker, "*.xml", LLTrans::getString("xml_file") + " (*.xml)"); suggest_ext = ".xml"; break; case FFSAVE_RAW: caption += add_simple_pattern_filter_to_gtkchooser (picker, "*.raw", LLTrans::getString("raw_file") + " (*.raw)"); suggest_ext = ".raw"; break; case FFSAVE_J2C: caption += add_simple_mime_filter_to_gtkchooser (picker, "images/jp2", LLTrans::getString("compressed_image_files") + " (*.j2c)"); suggest_ext = ".j2c"; break; default:; break; } gtk_window_set_title(GTK_WINDOW(picker), caption.c_str()); if (filename.empty()) { suggest_name += suggest_ext; gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER(picker), suggest_name.c_str()); } else { gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER(picker), filename.c_str()); } gtk_widget_show_all(GTK_WIDGET(picker)); PLS_FLUSH; gtk_main(); rtn = (getFileCount() == 1); } //gViewerWindow->mWindow->afterDialog(); return rtn; }
INT32 _dpsLogFilter::doParse() { INT32 rc = SDB_OK ; BOOLEAN Open = FALSE ; CHAR dstFile[ OSS_MAX_PATHSIZE + 1 ] = { 0 } ; OSSFILE fileFrom, fileTo ; if( isDir( _cmdData->dstPath ) ) { INT32 len = ossStrlen( _cmdData->dstPath ) ; if ( OSS_FILE_SEP_CHAR == _cmdData->dstPath[ len - 1 ] ) { ossSnprintf( dstFile, OSS_MAX_PATHSIZE, "%s%s", _cmdData->dstPath, "tmpLog.log" ) ; } else { ossSnprintf( dstFile, OSS_MAX_PATHSIZE, "%s"OSS_FILE_SEP"%s", _cmdData->dstPath, "tmpLog.log" ) ; } } else { ossSnprintf( dstFile, OSS_MAX_PATHSIZE, "%s", _cmdData->dstPath ) ; } if( !_cmdData->output ) { rc = ossOpen( dstFile, OSS_REPLACE | OSS_READWRITE, OSS_RU | OSS_WU | OSS_RG, fileTo ) ; if( rc ) { printf( "Unable to open file: %s\n", dstFile ) ; goto error ; } Open = TRUE ; } if ( SDB_LOG_FILTER_META == _filter->getType() ) { rc = _filter->doFilte( _cmdData, fileTo, NULL ) ; if( rc ) { goto error ; } goto done ; } if( isDir( _cmdData->srcPath ) ) { if( SDB_LOG_FILTER_LAST == _filter->getType() ) { printf( "Error: Cannot specify a dir path when using --last/-e\n" ); rc = SDB_INVALIDARG ; goto error ; } INT32 const MAX_FILE_COUNT = getFileCount( _cmdData->srcPath ) ; if( 0 >= MAX_FILE_COUNT ) { printf( "Cannot find any Log files\nPlease check" " and input the correct log file path\n" ) ; rc = SDB_INVALIDPATH ; goto error ; } for( INT32 idx = 0 ; idx < MAX_FILE_COUNT ; ++idx ) { fs::path fileDir( _cmdData->srcPath ) ; const CHAR *filepath = fileDir.string().c_str() ; CHAR filename[ OSS_MAX_PATHSIZE * 2 ] = { 0 } ; ossSnprintf( filename, OSS_MAX_PATHSIZE, "%s/sequoiadbLog.%d", filepath, idx ) ; if( !isFileExisted( filename ) ) { rc = SDB_INVALIDPATH ; goto error ; } rc = _filter->doFilte( _cmdData, fileTo, filename ) ; if( rc && idx != MAX_FILE_COUNT - 1 ) { rc = SDB_OK ; continue ; } } } else { if( !isFileExisted( _cmdData->srcPath ) ) { rc = SDB_INVALIDPATH ; goto error ; } rc = _filter->doFilte( _cmdData, fileTo, _cmdData->srcPath ) ; if( rc ) { goto error ; } } done: if( Open ) { ossClose( fileTo ) ; } return rc ; error: goto done ; }
void ZipFile::GetFileCount(const ValueList& args, KValueRef result) { result->SetDouble(getFileCount()); }
void SortDriver::run(int argc, char** argv) { if(argc == 5) { std::string sort = argv[2]; std::string filename = argv[3]; if(areParametersValid(sort, filename)) { int nums; std::string outfileName = argv[4]; std::ifstream read(filename); nums = getFileCount(read); int* array = createArray(read, nums); int* array2 = new int[nums]; std::ofstream write(outfileName); double time; if(sort == "-bubble") { time = Sorts<int>::sortTimer(Sorts<int>::bubbleSort, array, nums); write << "bubble " << nums << " " << time; } else if(sort == "-insertion") { time = Sorts<int>::sortTimer(Sorts<int>::insertionSort, array, nums); write << "insertion " << nums << " " << time; } else if(sort == "-selection") { time = Sorts<int>::sortTimer(Sorts<int>::selectionSort, array, nums); write << "selection " << nums << " " << time; } else if(sort == "-merge") { time = Sorts<int>::sortTimer(Sorts<int>::mergeSort, array, nums); write << "merge " << nums << " " << time; } else if(sort == "-quick") { time = Sorts<int>::sortTimer(Sorts<int>::quickSort, array, nums); write << "quick " << nums << " " << time; } else if(sort == "-quick3") { time = Sorts<int>::sortTimer(Sorts<int>::quickSortWithMedian, array, nums); write << "quick3 " << nums << " " << time; } else if(sort == "-all") { copyArray(array, array2, nums); time = Sorts<int>::sortTimer(Sorts<int>::bubbleSort, array, nums); write<<"bubble "<<nums<< " "<<time; write<<"\n"; copyArray(array2, array, nums); time = Sorts<int>::sortTimer(Sorts<int>::insertionSort, array, nums); write<<"insertion "<<nums<< " "<<time; write << "\n"; copyArray(array, array2, nums); time = Sorts<int>::sortTimer(Sorts<int>::selectionSort, array, nums); write<<"selection "<<nums<<" "<<time; write << "\n"; copyArray(array2, array, nums); time = Sorts<int>::sortTimer(Sorts<int>::mergeSort, array, nums); write<<"merge "<<nums<<" "<<time; write << "\n"; copyArray(array, array2, nums); time = Sorts<int>::sortTimer(Sorts<int>::quickSort, array, nums); write<<"quick "<<nums<<" "<<time; write << "\n"; copyArray(array2, array, nums); time = Sorts<int>::sortTimer(Sorts<int>::quickSortWithMedian, array, nums); write<<"quick3 "<<nums<<" "<<time; } //prevent memory leaks write.close(); delete array; delete array2; array=nullptr; array2=nullptr; } } else { printHelpMenu(); } }
LRESULT CRaidAnalyzerDlg::OnShowCuttingDialog(WPARAM wParam, LPARAM lParam) { //UINT iCurrentStep = 0; //CCuttingSectorsDlg *pCuttingDialog = new CCuttingSectorsDlg(this,0); //pCuttingDialog->Create(CCuttingSectorsDlg::IDD); //pCuttingDialog->ShowWindow(SW_SHOW); // //ShowWindow(SW_HIDE); CString defaultString = _T("1000"); CString strReport = _T(""); CString strTextOut = _T(""); CString strStep = _T(""); CDiskOrder *pDiskOrder = NULL; CDiskNumber *pDiskNumber = NULL; CNewOrder *pNewOrder = NULL; auto setting = settings::CSettings::getSetting(); CString strWorkingDirectory( setting->getWorkFolder().c_str() ); INT_PTR iDlgResult = 0; CString strCreatePath = _T(""); // S T E P UINT iCurrentStep = 0; CDriveReader *pDriveReader = NULL; CFileCreater *pFileCreater = NULL; CCuttingSectorsDlg *pCuttingDialog = NULL; CJGShear *pJpgShear = NULL; CMapBlocks *pMapBlock = NULL; CDataBlock *pBlockData = NULL; CJPGChunk *pJpgChunk = NULL; CompositeSTEP *pComposite = NULL; BOOL bError = FALSE; BOOL bFinishJPG = FALSE; CString strError = _T(""); DWORD dwBlockSize = 0; DWORD dwSectorCount = 0; LONGLONG lJPGPosition = 0; LONGLONG lShearPos = 0; LONGLONG lReadPosition = 0; BYTE *pDataBuffer = NULL; BYTE iDiskNumber = 0; NUMBER_POS NumberDiskPosition = {0}; UINT iFileNumber = 0; DWORD dwSize = 0; BOOL isNextDisk = FALSE; CString strHeader = _T(""); pDiskOrder = new CDiskOrder(); pComposite = new CompositeSTEP(0); pMapBlock = new CMapBlocks(); UINT iMinBlockSize = 0; DWORD bytesPerSector = SECTOR_SIZE; while (true) { bytesPerSector = SECTOR_SIZE; // Creating Directory... strCreatePath = Utility::getDirectoryPath(strWorkingDirectory,iCurrentStep); bError = Utility::CreateStepDirectory(strCreatePath); if (bError == FALSE) { strError = _T("Error Create Directory.."); break; } strStep.Format(_T("\r\nS T E P #%d\r\n"),iCurrentStep); m_ReportLog->AddText(strStep); switch (iCurrentStep) { /*------------------******************------------------*/ //Select File 1Mb to Determine "Continue work" -->>... /*------------------******************------------------*/ case enContinue: /*SuspendThreads();*/ //pMapBlock = new CMapBlocks(); //pDiskOrder = new CDiskOrder(); //pComposite = new CompositeSTEP(0); pCuttingDialog = new CCuttingSectorsDlg(this,iCurrentStep); pCuttingDialog->setHeader(_T("[Определения файла]")); strTextOut = _T("Введите номер файла для начала работы."); pCuttingDialog->setTextData(strTextOut); pCuttingDialog->setStateProgram(m_enStateProgram); iDlgResult = pCuttingDialog->DoModal(); //pCuttingDialog->Create(CCuttingSectorsDlg::IDD); //pCuttingDialog->ShowWindow(SW_SHOW); if (iDlgResult == ID_YES) { m_enStateProgram = pCuttingDialog->getStatProgram(); NumberDiskPosition = pCuttingDialog->getDiskNumberPos(); lJPGPosition = NumberDiskPosition.m_lLBAPosition; iDiskNumber = NumberDiskPosition.m_iDiskNumber; pDiskNumber = new CDiskNumber(); pDiskNumber->setDiskDrive(m_vecSelDrives.at(iDiskNumber)); pDiskOrder->Add(pDiskNumber); //// Log ... //m_ReportLog->AddText(_T("Program found start JPG file\r\n")); //strReport.Format(_T(" Hard Disk # %d, Sector # %I64d\r\n"),m_vecSelDrives.at(pDiskInfoData->m_iDiskNumber).getDiskNumber(),lJPGPosition); //m_ReportLog->AddText(strReport); pDiskOrder->MakeDiskOrder(); strReport = pDiskOrder->GetDiskOrder(); m_ReportLog->AddText(strReport); //// Dialog Text //strTextOut = _T("Found the signature JPG-file\r\n"); //strTextOut += _T("\r\n\CONTINUE WORK ?"); //// Creating Dialog... //pCuttingDialog = new CCuttingSectorsDlg(this,iCurrentStep); //pCuttingDialog->setTextData(strTextOut); //iDlgResult = pCuttingDialog->DoModal(); //delete pCuttingDialog; //pCuttingDialog = NULL; } delete pCuttingDialog; pCuttingDialog = NULL; // End ContinueBlock break; /*------------------******************------------------*/ //Creating 1000 files. Determine of Shear -->>... /*------------------******************------------------*/ case enCuttingFiles: bytesPerSector = m_vecSelDrives.at(iDiskNumber).getBytesPerSector(); dwSize = setting->getFileCount() * bytesPerSector; m_ReportLog->AddText(_T("Идет создание файлов для определение среза...\r\n")); pDriveReader = new CDriveReader(m_vecSelDrives.at(iDiskNumber),lJPGPosition,dwSize); bError = pDriveReader->Execute(); if (bError == FALSE) { strError = _T("Error Read Drive..."); break; } pDataBuffer = pDriveReader->GetData(); pFileCreater = new CFileCreater(strCreatePath); for (UINT i = 1; i <= setting->getFileCount(); ++i) { pFileCreater->setData(pDataBuffer); pFileCreater->setFileNumber(i); pFileCreater->setSize(i*bytesPerSector); bError = pFileCreater->Execute(); if (bError == FALSE) { strError = _T("Error Create Files..."); break; } } if (bError == FALSE) break; strTextOut = strCreatePath; strTextOut += _T("\\0001.jpg"); ShellExecute(this->GetSafeHwnd(),_T("open"),strTextOut, NULL, NULL, SW_SHOWNORMAL); delete pDriveReader; pDriveReader = NULL; delete pFileCreater; pFileCreater = NULL; strTextOut.Format(L"Создано %d файлов\r\n // Введите номер файла для определения \'конца блока\'. \r\n",setting->getFileCount()); pCuttingDialog = new CCuttingSectorsDlg(this,iCurrentStep); pCuttingDialog->setHeader(_T("[определения \'конца блока\']")); pCuttingDialog->setTextData(strTextOut); pCuttingDialog->setMinMax(1,setting->getFileCount()); pCuttingDialog->setStateProgram(m_enStateProgram); iDlgResult = pCuttingDialog->DoModal(); m_enStateProgram = pCuttingDialog->getStatProgram(); iFileNumber = pCuttingDialog->getNumber(); delete pCuttingDialog; pCuttingDialog = NULL; if (iDlgResult == ID_YES) { lShearPos = lJPGPosition; dwBlockSize = iFileNumber * bytesPerSector; iMinBlockSize = iFileNumber; lShearPos += iFileNumber; strReport.Format(_T("Граница блока по смешению = %I64d (секторов) диск № %d\r\n"), lShearPos , m_vecSelDrives.at(iDiskNumber).getDiskNumber() ); AfxMessageBox( strReport, MB_OK ); m_ReportLog->AddText(strReport); pJpgShear = new CJGShear(); pJpgShear->setDataSize(dwBlockSize); // set Data Buffer size pJpgShear->setDiskNumber( (BYTE)m_vecSelDrives.at(iDiskNumber).getDiskNumber() ); // Set Disk Number pJpgShear->setJPGStartPostion(lJPGPosition); pJpgShear->setDevice(m_vecSelDrives.at(iDiskNumber)); pJpgShear->Execute(); pComposite->AddSTEP(pJpgShear); } dwBlockSize = 0; // End Cutting Files break; /*------------------******************------------------*/ //Determine "Block Size", Disk Order -->>... /*------------------******************------------------*/ default: pComposite->Execute(); pFileCreater = new CFileCreater(strCreatePath); pFileCreater->setData(pComposite->GetData()); pFileCreater->setSize(pComposite->GetSize()); pFileCreater->setFileNumber(0); pFileCreater->AddFileName(_T("Original")); bError = pFileCreater->Execute(); if (bError == FALSE) { strError = _T("Error Create Files..."); break; } strTextOut = pFileCreater->GetFilePath(); delete pFileCreater; pFileCreater = NULL; // strTextOut.Insert(0,_T("C:\\WINDOWS\\rundll32.exe ")); ShellExecute(this->GetSafeHwnd(),_T("open"),strTextOut, NULL, NULL, SW_SHOWNORMAL); // system((char*)strTextOut.GetBuffer()); pMapBlock->ClearMap(); bFinishJPG = pComposite->isFinishJPG(); if (bFinishJPG) break; pMapBlock->setBlockSize(dwBlockSize); pMapBlock->setPosition(lShearPos); pMapBlock->setVecDrives(m_vecSelDrives); pMapBlock->setDirectory(strCreatePath); pMapBlock->setBaseData(pComposite->GetData(),pComposite->GetSize()); pMapBlock->DeterminateBlock(iMinBlockSize); //??????? switch (iCurrentStep) { case enDetermineBlockSize: strTextOut = _T("Размер блока : неизвестно\r\n Определение размера блока\r\n"); strHeader = _T("[Определение размера блока]"); break; case enDetermineNextDisk: strTextOut = _T("Поиск устройств в который есть продолжение jpg \r\n"); strReport.Format(_T("Граница блока по смешению = %I64d (секторов) диск № %d\r\n"), lShearPos , m_vecSelDrives.at(iDiskNumber).getDiskNumber() ); //AfxMessageBox( strReport, MB_OK ); strTextOut.Append( strReport ); strHeader = _T("[Поиск следущих устройств]"); break; default: strTextOut.Format(_T("Определение следущего устройства\r\nРазмер блока : %d(байт), %d(секторов)\r\n"),dwBlockSize,dwSectorCount); LONGLONG lShowShear = lJPGPosition; lShowShear += iFileNumber; strHeader = _T("[Define the Next Device]"); } //strTextOut += _T("Look in the folder "); //strTextOut += strStep; //strTextOut += _T("NUMBER FILE"); pDiskOrder->MakeDiskOrder(); strTextOut += pDiskOrder->GetDiskOrder(); pCuttingDialog = new CCuttingSectorsDlg(this,iCurrentStep); pCuttingDialog->setHeader(strHeader); pCuttingDialog->setTextData(strTextOut); pCuttingDialog->setMinMax(1,pMapBlock->getCount()); pCuttingDialog->setStateProgram(m_enStateProgram); iDlgResult = pCuttingDialog->DoModal(); m_enStateProgram = pCuttingDialog->getStatProgram(); iFileNumber = pCuttingDialog->getNumber(); //--iFileNumber; // decrement Number (from (1 - ...)) delete pCuttingDialog; pCuttingDialog = NULL; if (iDlgResult == ID_YES) { pBlockData = pMapBlock->getData(iFileNumber); if (pBlockData == NULL) { bError = FALSE; break; } if (iCurrentStep == enDetermineNextDisk) { isNextDisk = TRUE; for (size_t iDisk = 0; iDisk < m_vecSelDrives.size(); ++iDisk) { if (m_vecSelDrives.at(iDisk).getDiskNumber() == pBlockData->getDiskNumber()) { pMapBlock->setNextDisk(iDisk); break; } } pJpgChunk = new CJPGChunk(); pJpgChunk->setBackPos(lShearPos); pComposite->AddSTEP(pJpgChunk); } else { // check pBlockData for NULL ??????????? dwBlockSize = pBlockData->getBlockSize(); dwSectorCount = dwBlockSize / m_vecSelDrives.at(0).getBytesPerSector(); if (pBlockData->getPosUpDown( ) == PosDown ) { pNewOrder = new CNewOrder(); pDiskOrder->Add(pNewOrder); } pJpgChunk = new CJPGChunk(); pJpgChunk->setDiskNumber(pBlockData->getDiskNumber()); for (size_t iDisk = 0; iDisk < m_vecSelDrives.size(); ++iDisk) { if (m_vecSelDrives.at(iDisk).getDiskNumber() == pBlockData->getDiskNumber()) { pJpgChunk->setDevice(m_vecSelDrives.at(iDisk)); pDiskNumber = new CDiskNumber(); pDiskNumber->setDiskDrive(m_vecSelDrives.at(iDisk)); pDiskOrder->Add(pDiskNumber); break; } } lReadPosition = lShearPos; pJpgChunk->setBackPos(lShearPos); if (pBlockData->getPosUpDown() == PosUP) lReadPosition -= dwSectorCount; pJpgChunk->setShearPosition(lReadPosition); pJpgChunk->setDataSize(dwBlockSize); pJpgChunk->Execute(); pComposite->AddSTEP(pJpgChunk); strReport.Format(_T("Размер блока : %d(байт), %d(секторов)\r\n"),dwBlockSize,dwSectorCount); m_ReportLog->AddText(strReport); pDiskOrder->MakeDiskOrder(); strReport = pDiskOrder->GetDiskOrder(); m_ReportLog->AddText(strReport); //pDiskOrder->MakeDiskOrder(_T(" # ")); //m_ReportLog->AddText(pDiskOrder->GetDiskOrder()); // increment Position if (pBlockData->getPosUpDown( ) == PosDown ) lShearPos += dwSectorCount; } } if (iDlgResult == ID_BACK) { lShearPos = pComposite->GetPositiom(); pComposite->RemoveSTEP(); pDiskOrder->Delete(); --iCurrentStep; if (iCurrentStep == enDetermineBlockSize) dwBlockSize = 0; if (iCurrentStep == enDetermineNextDisk) pMapBlock->setNextDisk(-1); continue; } // End Default } // if error Quit if (bError == FALSE) { AfxMessageBox(strError,MB_ICONERROR); break; } if (bFinishJPG) { strReport.Format(_T("Найден конец Jpg-файла...\r\n")); m_ReportLog->AddText(strReport); if (AfxMessageBox(_T("Найден конец Jpg-файла...\r\n Продолжить работу с другими файлами?"),MB_YESNO) == IDNO) iDlgResult = ID_ABORD; else iDlgResult = ID_NO; bFinishJPG = FALSE; } if (iDlgResult == ID_ABORD) break; // increment STEP; ++iCurrentStep; if ( iDlgResult == ID_NO) { delete pComposite; pComposite = NULL; delete pMapBlock; pMapBlock = NULL; //delete pDiskOrder; //pDiskOrder = NULL; pDiskOrder->Clear(); dwBlockSize = 0; dwSectorCount = 0; iCurrentStep = 0; } } // Clear... //OnBnClickedButtonClearLog(); //if (dwBlockSize > 0) //{ // strReport.Format(_T("\r\n\Block Size : %d(bytes), %d(sectors)\r\n"),dwBlockSize,dwSectorCount); // m_ReportLog->AddText(strReport); // pDiskOrder->MakeDiskOrder(); // strReport = pDiskOrder->GetDiskOrder(); // m_ReportLog->AddText(strReport); //} if (bFinishJPG) { } switch (iDlgResult) { case ID_ABORD: pResultCutting->m_ButtonResult = iResABORT; break; case ID_NO: pResultCutting->m_ButtonResult = iResNEXT; break; default: pResultCutting->m_ButtonResult = iResNEXT; } if (pComposite != NULL) { delete pComposite; pComposite = NULL; } if (pMapBlock != NULL) { //pMapBlock->ClearMap(); delete pMapBlock; pMapBlock = NULL; } if (pDiskOrder != NULL) { delete pDiskOrder; pDiskOrder = NULL; } ShowWindow(SW_SHOW); OnBnClickedButtonStop(); return TRUE; }