这篇教程C++ FileExists函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中FileExists函数的典型用法代码示例。如果您正苦于以下问题:C++ FileExists函数的具体用法?C++ FileExists怎么用?C++ FileExists使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了FileExists函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: ResolveSupersedeBOOL ResolveSupersede(siC *siCObject, greInfo *aGre){ DWORD dwIndex; char szFilePath[MAX_BUF]; char szSupersedeFile[MAX_BUF]; char szSupersedeVersion[MAX_BUF]; char szType[MAX_BUF_TINY]; char szKey[MAX_BUF_TINY]; verBlock vbVersionNew; verBlock vbFileVersion; siCObject->bSupersede = FALSE; if(siCObject->dwAttributes & SIC_SUPERSEDE) { dwIndex = 0; GetConfigIniProfileString(siCObject->szReferenceName, "SupersedeType", "", szType, sizeof(szType)); if(*szType !='/0') { if(lstrcmpi(szType, "File Exists") == 0) { wsprintf(szKey, "SupersedeFile%d", dwIndex); GetConfigIniProfileString(siCObject->szReferenceName, szKey, "", szSupersedeFile, sizeof(szSupersedeFile)); while(*szSupersedeFile != '/0') { DecryptString(szFilePath, szSupersedeFile); if(FileExists(szFilePath)) { wsprintf(szKey, "SupersedeMinVersion%d",dwIndex); GetConfigIniProfileString(siCObject->szReferenceName, szKey, "", szSupersedeVersion, sizeof(szSupersedeVersion)); if(*szSupersedeVersion != '/0') { if(GetFileVersion(szFilePath,&vbFileVersion)) { /* If we can get the version, and it is greater than or equal to the SupersedeVersion * set supersede. If we cannot get the version, do not supersede the file. */ TranslateVersionStr(szSupersedeVersion, &vbVersionNew); if(CompareVersion(vbFileVersion,vbVersionNew) >= 0) { siCObject->bSupersede = TRUE; break; /* Found at least one file, so break out of while loop */ } } } else { /* The file exists, and there's no version to check. set Supersede */ siCObject->bSupersede = TRUE; break; /* Found at least one file, so break out of while loop */ } } wsprintf(szKey, "SupersedeFile%d", ++dwIndex); GetConfigIniProfileString(siCObject->szReferenceName, szKey, "", szSupersedeFile, sizeof(szSupersedeFile)); } } else if(lstrcmpi(szType, "GRE") == 0) { /* save the GRE component */ aGre->siCGreComponent = siCObject; /* If -fgre is passed in, and the current product to install is !GRE, * and the current component is 'Component GRE' then select and * disable it to force it to be installed regardless of supersede * rules. * * If the product is GRE, then it won't have a 'Component GRE', but * rather a 'Component XPCOM', in which case it will always get * installed */ if((gbForceInstallGre) && (lstrcmpi(sgProduct.szProductNameInternal, "GRE") != 0)) { siCObject->dwAttributes |= SIC_SELECTED; siCObject->dwAttributes |= SIC_DISABLED; } else ResolveSupersedeGre(siCObject, aGre); } } if(siCObject->bSupersede) { siCObject->dwAttributes &= ~SIC_SELECTED; siCObject->dwAttributes |= SIC_DISABLED; siCObject->dwAttributes |= SIC_INVISIBLE; } else /* Make sure to unset the DISABLED bit. If the Setup Type is other than * Custom, then we don't care if it's DISABLED or not because this flag * is only used in the Custom dialogs. * * If the Setup Type is Custom and this component is DISABLED by default * via the config.ini, it's default value will be restored in the * SiCNodeSetItemsSelected() function that called ResolveSupersede(). */ siCObject->dwAttributes &= ~SIC_DISABLED; } return(siCObject->bSupersede);}
开发者ID:rn10950,项目名称:RetroZilla,代码行数:94,
示例2: UpdateDatavoid CDlgSelCritDB::OnOK() { CString strCurCodeName; CString strCurDBName; CString strTmp; UpdateData(); m_ctlMaterCodeName.GetWindowText( EDIBgbl::sCur_MaterialCodeName ); int row = m_ctrlShowCODE.GetSelectionMark(); if( row == -1 ) { AfxMessageBox("请选择一个行业的规范数据库!"); return; } char c[256]; //规范数据库 m_ctrlShowCODE.GetItemText(row, 1, c, 256); strCurDBName = c; //当前规范 memset(c,'/0',256); m_ctrlShowCODE.GetItemText(row, 0, c, 256); strCurCodeName = c; //当前规范代号 memset(c,'/0',256); m_ctrlShowCODE.GetItemText(row, 2, c, 256); EDIBgbl::sCur_CodeNO = c; try { if ( !FileExists( EDIBgbl::sCritPath + strCurDBName ) ) { strTmp.Format(IDS_NOT_EXISTS_FILE, EDIBgbl::sCritPath + strCurDBName); AfxMessageBox( strTmp ); return; } CString strCon; //重新连接标准库 strCon = CONNECTSTRING + EDIBgbl::sCritPath + strCurDBName; if( theApp.m_pConnectionCODE->State == adStateOpen ) { theApp.m_pConnectionCODE->Close(); } theApp.m_pConnectionCODE->Open(_bstr_t(strCon), "", "", -1); } catch(_com_error &e) { AfxMessageBox(e.Description()+"/n/n选择的规范数据库("+strCurCodeName+")被破坏, 请重新安装 AutoIPED !"); CDialog::OnCancel(); return; } EDIBgbl::sCur_CritDbName = strCurDBName; EDIBgbl::sCur_CodeName = strCurCodeName; EDIBgbl::iCur_CodeKey=row+1; EDIBgbl::SetCurDBName(); //显示当前的工程名(加上行业标准) ((CMainFrame*)theApp.m_pMainWnd)->ShowCurrentProjectName(); CDialog::OnOK();}
开发者ID:uesoft,项目名称:AutoIPED,代码行数:62,
示例3: StartCmdervoid StartCmder(std::wstring path, bool is_single_mode){#if USE_TASKBAR_API wchar_t appId[MAX_PATH] = { 0 };#endif wchar_t exeDir[MAX_PATH] = { 0 }; wchar_t icoPath[MAX_PATH] = { 0 }; wchar_t cfgPath[MAX_PATH] = { 0 }; wchar_t oldCfgPath[MAX_PATH] = { 0 }; wchar_t conEmuPath[MAX_PATH] = { 0 }; wchar_t args[MAX_PATH * 2 + 256] = { 0 }; GetModuleFileName(NULL, exeDir, sizeof(exeDir));#if USE_TASKBAR_API wcscpy_s(appId, exeDir);#endif PathRemoveFileSpec(exeDir); PathCombine(icoPath, exeDir, L"icons//cmder.ico"); // Check for machine-specific config file. PathCombine(oldCfgPath, exeDir, L"config//ConEmu-%COMPUTERNAME%.xml"); ExpandEnvironmentStrings(oldCfgPath, oldCfgPath, sizeof(oldCfgPath) / sizeof(oldCfgPath[0])); if (!PathFileExists(oldCfgPath)) { PathCombine(oldCfgPath, exeDir, L"config//ConEmu.xml"); } // Check for machine-specific config file. PathCombine(cfgPath, exeDir, L"vendor//conemu-maximus5//ConEmu-%COMPUTERNAME%.xml"); ExpandEnvironmentStrings(cfgPath, cfgPath, sizeof(cfgPath) / sizeof(cfgPath[0])); if (!PathFileExists(cfgPath)) { PathCombine(cfgPath, exeDir, L"vendor//conemu-maximus5//ConEmu.xml"); } PathCombine(conEmuPath, exeDir, L"vendor//conemu-maximus5//ConEmu.exe"); if (FileExists(oldCfgPath) && !FileExists(cfgPath)) { if (!CopyFile(oldCfgPath, cfgPath, FALSE)) { MessageBox(NULL, (GetLastError() == ERROR_ACCESS_DENIED) ? L"Failed to copy ConEmu.xml file to new location! Restart cmder as administrator." : L"Failed to copy ConEmu.xml file to new location!", MB_TITLE, MB_ICONSTOP); exit(1); } } if (is_single_mode) { swprintf_s(args, L"/single /Icon /"%s/" /Title Cmder", icoPath); } else { swprintf_s(args, L"/Icon /"%s/" /Title Cmder", icoPath); } SetEnvironmentVariable(L"CMDER_ROOT", exeDir); if (!streqi(path.c_str(), L"")) { if (!SetEnvironmentVariable(L"CMDER_START", path.c_str())) { MessageBox(NULL, _T("Error trying to set CMDER_START to given path!"), _T("Error"), MB_OK); } } // Ensure EnvironmentVariables are propagated. SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Environment", SMTO_ABORTIFHUNG, 5000, NULL); SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM) L"Environment", SMTO_ABORTIFHUNG, 5000, NULL); // For Windows >= 8 STARTUPINFO si = { 0 }; si.cb = sizeof(STARTUPINFO);#if USE_TASKBAR_API si.lpTitle = appId; si.dwFlags = STARTF_TITLEISAPPID;#endif PROCESS_INFORMATION pi; if (!CreateProcess(conEmuPath, args, NULL, NULL, false, 0, NULL, NULL, &si, &pi)) { MessageBox(NULL, _T("Unable to create the ConEmu Process!"), _T("Error"), MB_OK); return; }}
开发者ID:1833183060,项目名称:cmder-1,代码行数:83,
示例4: LogDebugint Sequence::OpenSequenceFile(const char *filename, int startSeconds) { LogDebug(VB_SEQUENCE, "OpenSequenceFile(%s, %d)/n", filename, startSeconds); if (!filename || !filename[0]) { LogErr(VB_SEQUENCE, "Empty Sequence Filename!/n", filename); return 0; } size_t bytesRead = 0; m_seqFileSize = 0; if (IsSequenceRunning()) CloseSequenceFile(); m_seqStarting = 1; m_seqPaused = 0; m_seqDuration = 0; m_seqSecondsElapsed = 0; m_seqSecondsRemaining = 0; strcpy(m_seqFilename, filename); char tmpFilename[2048]; unsigned char tmpData[2048]; strcpy(tmpFilename,(const char *)getSequenceDirectory()); strcat(tmpFilename,"/"); strcat(tmpFilename, filename); if (getFPPmode() == REMOTE_MODE) CheckForHostSpecificFile(getSetting("HostName"), tmpFilename); if (!FileExists(tmpFilename)) { LogErr(VB_SEQUENCE, "Sequence file %s does not exist/n", tmpFilename); m_seqStarting = 0; return 0; } m_seqFile = fopen((const char *)tmpFilename, "r"); if (m_seqFile == NULL) { LogErr(VB_SEQUENCE, "Error opening sequence file: %s. fopen returned NULL/n", tmpFilename); m_seqStarting = 0; return 0; } if (getFPPmode() == MASTER_MODE) { SendSeqSyncStartPacket(filename); // Give the remotes a head start spining up so they are ready usleep(100000); } /////////////////////////////////////////////////////////////////////// // Check 4-byte File format identifier char seqFormatID[5]; strcpy(seqFormatID, " "); bytesRead = fread(seqFormatID, 1, 4, m_seqFile); seqFormatID[4] = 0; if ((bytesRead != 4) || (strcmp(seqFormatID, "PSEQ") && strcmp(seqFormatID, "FSEQ"))) { LogErr(VB_SEQUENCE, "Error opening sequence file: %s. Incorrect File Format header: '%s', bytesRead: %d/n", filename, seqFormatID, bytesRead); fseek(m_seqFile, 0L, SEEK_SET); bytesRead = fread(tmpData, 1, DATA_DUMP_SIZE, m_seqFile); HexDump("Sequence File head:", tmpData, bytesRead); fclose(m_seqFile); m_seqFile = NULL; m_seqStarting = 0; return 0; } /////////////////////////////////////////////////////////////////////// // Get Channel Data Offset bytesRead = fread(tmpData, 1, 2, m_seqFile); if (bytesRead != 2) { LogErr(VB_SEQUENCE, "Sequence file %s too short, unable to read channel data offset value/n", filename); fseek(m_seqFile, 0L, SEEK_SET); bytesRead = fread(tmpData, 1, DATA_DUMP_SIZE, m_seqFile); HexDump("Sequence File head:", tmpData, bytesRead); fclose(m_seqFile); m_seqFile = NULL; m_seqStarting = 0; return 0; } m_seqChanDataOffset = tmpData[0] + (tmpData[1] << 8); /////////////////////////////////////////////////////////////////////// // Now that we know the header size, read the whole header in one shot fseek(m_seqFile, 0L, SEEK_SET); bytesRead = fread(tmpData, 1, m_seqChanDataOffset, m_seqFile);//.........这里部分代码省略.........
开发者ID:jcochran,项目名称:fpp,代码行数:101,
示例5: mainintmain(int argc, char *argv[]){ char **av, surf_fname[STRLEN], *template_fname, *hemi, *sphere_name, *cp, *subject, fname[STRLEN] ; int ac, nargs, ino, sno, nbad = 0, failed, n,nfields; VERTEX *v; VALS_VP *vp; MRI_SURFACE *mris ; MRI_SP *mrisp, /* *mrisp_aligned,*/ *mrisp_template ; INTEGRATION_PARMS parms ; /* rkt: check for and handle version tag */ nargs = handle_version_option (argc, argv, "$Id: mris_make_template.c,v 1.27 2011/03/02 00:04:33 nicks Exp $", "$Name: stable5 $"); if (nargs && argc - nargs == 1) exit (0); argc -= nargs; memset(&parms, 0, sizeof(parms)) ; Progname = argv[0] ; ErrorInit(NULL, NULL, NULL) ; DiagInit(NULL, NULL, NULL) ; /* setting default values for vectorial registration */ setParms(&parms); ac = argc ; av = argv ; for ( ; argc > 1 && ISOPTION(*argv[1]) ; argc--, argv++) { nargs = get_option(argc, argv,&parms) ; argc -= nargs ; argv += nargs ; } if (argc < 5) usage_exit() ; /* multiframe registration */ if (multiframes) parms.flags |= IP_USE_MULTIFRAMES; if (!strlen(subjects_dir)) /* not specified on command line*/ { cp = getenv("SUBJECTS_DIR") ; if (!cp) ErrorExit(ERROR_BADPARM, "%s: SUBJECTS_DIR not defined in environment./n", Progname) ; strcpy(subjects_dir, cp) ; } hemi = argv[1] ; sphere_name = argv[2] ; template_fname = argv[argc-1] ; if (1 || !FileExists(template_fname)) /* first time - create it */ { fprintf(stderr, "creating new parameterization.../n") ; if (multiframes) { mrisp_template = MRISPalloc(scale, atlas_size * IMAGES_PER_SURFACE ); /* if (no_rot) //* don't do rigid alignment *// */ /* mrisp_aligned = NULL ; */ /* else */ /* mrisp_aligned = MRISPalloc(scale, PARAM_FRAMES); */ } else { mrisp_template = MRISPalloc(scale, PARAM_IMAGES); /* if (no_rot) //* don't do rigid alignment *// */ /* mrisp_aligned = NULL ; */ /* else */ /* mrisp_aligned = MRISPalloc(scale, PARAM_IMAGES); */ } } else { fprintf(stderr, "reading template parameterization from %s.../n", template_fname) ; /* mrisp_aligned = NULL ; */ mrisp_template = MRISPread(template_fname) ; if (!mrisp_template) ErrorExit(ERROR_NOFILE, "%s: could not open template file %s", Progname, template_fname) ; } argv += 3 ; argc -= 3 ; for (ino = 0 ; ino < argc-1 ; ino++) { failed = 0 ; subject = argv[ino] ; fprintf(stderr, "/nprocessing subject %s (%d of %d)/n", subject, ino+1, argc-1) ; sprintf(surf_fname, "%s/%s/surf/%s.%s", subjects_dir, subject, hemi, sphere_name) ; fprintf(stderr, "reading spherical surface %s.../n", surf_fname) ; mris = MRISread(surf_fname) ; if (!mris) {//.........这里部分代码省略.........
开发者ID:guo2004131,项目名称:freesurfer,代码行数:101,
示例6: switchvoid __fastcall TForm1::TabControl1Change(TObject *Sender){ switch( TabControl1 -> TabIndex ) { case 0: { if( !FileExists( "MeanFile.txt" ) || !FileExists( "standardDeviation.txt" ) ) { char filename[ 150 ]; MacroBlock MeanBlock[ imageHeight / 16 ][ imageWidth / 16 ]; MacroBlock block[ imageHeight / 16 ][ imageWidth / 16 ]; for( int n = 0; n < FileListBox1 -> Items -> Count; n ++ ) { memset( block, 0, sizeof( block ) ); memset( MeanBlock, 0, sizeof( MeanBlock ) ); sprintf( filename, "%s%s", ExtractFilePath( FileListBox1 -> FileName ), FileListBox1 -> Items -> Strings[ n ].c_str() ); ReadBMPData( filename ); double LSum = 0; for( int i = 0; i < imageHeight / 16; i ++ ) for( int j = 0; j < imageWidth / 16; LSum = 0, j ++ ) { for( int k = i * 16; k <= ( i * 16 + 15 ); k ++ ) for( int m = j * 16 * 3; m <= ( j * 16 + 15 ) * 3; m += 3 ) { RGB2Lab( ImageDataBlock[ k ][ m + 0 ], ImageDataBlock[ k ][ m + 1 ], ImageDataBlock[ k ][ m + 2 ], &Lab_buf[ k ][ m + 0 ], &Lab_buf[ k ][ m + 1 ], &Lab_buf[ k ][ m + 2 ] ); LSum += Lab_buf[ k ][ m + 0 ]; } block[ i ][ j ].DCL = LSum / 256.0; MeanBlock[ i ][ j ].DCL += block[ i ][ j ].DCL; AllDCL[ n ][ i ][ j ] = block[ i ][ j ].DCL; } } for( int i = 0; i < imageHeight / 16; i ++ ) for( int j = 0; j < imageWidth / 16; j ++ ) MeanBlock[ i ][ j ].DCL /= FileListBox1 -> Items -> Count; FILE *MeanFile = fopen( "MeanFile.txt", "w" ); for( int i = 0; i < imageHeight / 16; i ++ ) { for( int j = 0; j < imageWidth / 16; j ++ ) fprintf( MeanFile, "%f ", MeanBlock[ i ][ j ].DCL ); fprintf( MeanFile, "/n" ); } fclose( MeanFile ); for( int i = 0; i < 100; i ++ ) for( int j = 0; j < imageHeight / 16; j ++ ) for( int k = 0; k < imageWidth / 16; k ++ ) stddev[ j ][ k ] += pow( AllDCL[ i ][ j ][ k ] - MeanBlock[ j ][ k ].DCL, 2 ); for( int i = 0; i < imageHeight / 16; i ++ ) for( int j = 0; j < imageWidth / 16; j ++ ) stddev[ i ][ j ] = pow( stddev[ i ][ j ] / ( FileListBox1 -> Items -> Count - 1 ), 0.5 ); FILE *StandardDeviation = fopen( "standardDeviation.txt", "w" ); for( int i = 0; i < imageHeight / 16; i ++ ) { for( int j = 0; j < imageWidth / 16; j ++ ) fprintf( StandardDeviation, "%f ", stddev[ i ][ j ] ); fprintf( StandardDeviation, "/n" ); } fclose( StandardDeviation ); } break; } }}
开发者ID:yanhongwang,项目名称:ColorImageProcessingPipeline,代码行数:97,
示例7: batchmat/************************************************************************************ * batch use of mkmat: open file, save to another file.... T6spectra.root * ************************************************************************************ */void batchmat(int run, int det=6, const char* VOL="V" ){ // TChain *c=new TChain("nanot"); TString s; char fname[180]; char fnamespe[180]; char namespe[180]; char telename[30];// T6 char telename1D[30];// T61D - original name char telenamed[33];// T6d char telenamep[30];// T6p char telenamede[30];// T6de char cutdname[30];// cutt6d char cutpname[30];// cutt6p // accept both 003 or 0003...... sprintf( fname, "RUN%03d_%s.root", run, VOL ); if ( FileExists( fname,1000 ) ){ printf("File %s exists/n", fname); }else{ sprintf( fname, "RUN%04d_%s.root", run, VOL ); } sprintf( namespe, "T%d_run%03d_%s", det, run, VOL );//spectrum name sprintf( fnamespe, "T%d%sspectra.root", det, VOL ); //filename // these names must correspond to mkmat T2V T2V1D sprintf( telename, "T%d%s", det, VOL ); //telename sprintf( telename1D, "T%d%s1D", det, VOL ); //telename 1D sprintf( telenamed, "T%d_d_run%03d_%s", det, run, VOL); //telename d sprintf( telenamep, "T%d_p_run%03d_%s", det, run, VOL ); //telename p sprintf( telenamede, "T%d_de_run%03d_%s", det, run, VOL ); //telename de sprintf( cutdname, "cutt%dd%s", det, VOL ); //cutname d sprintf( cutpname, "cutt%dp%s", det, VOL ); //cutname p /* * READ THE FOLLOWING ROOT FILE----------------------------------------- */ if ( ! FileExists( fname,1000 ) ){// FILE root DOES EXIST.................. printf("file %s doesnot exist or is zombie/n", fname ); }else{ printf("file %s exists OK/n", fname ); TFile *f=new TFile( fname ,"READ"); // read from TTree *t=(TTree*)f->Get("nanot"); /* * CREATE MATRIX (and d and p spectra as well?) */ mkmat( det, VOL ); TH2F* t6bi=(TH2F*)gDirectory->Get( telename ); /* * CREATE 1DIM (and d and p spectra as well?) */ printf( "searching for TCutG : %s, %s/n", cutdname, cutpname ); TCutG *mycutd=(TCutG*)gROOT->GetListOfSpecials()->FindObject( cutdname ); TCutG *mycutp=(TCutG*)gROOT->GetListOfSpecials()->FindObject( cutpname ); TH1F* t61d_d; TH1F* t61d_p; TH1F* t61d_de; /* * if there are cuts ==>> create 1D */ if (mycutd!=NULL){ mkmat1( det, VOL, mycutd ); // create 1D t61d_d=(TH1F*)gDirectory->Get( telename1D ); t61d_d->SetName( telenamed ); }//cutd if (mycutp!=NULL){ mkmat1( det, VOL, mycutp ); // create 1D t61d_p=(TH1F*)gDirectory->Get( telename1D ); t61d_p->SetName( telenamep ); }//cutd // Run with a condition: // MAKE 1D dE ONLY SPECTRUM mkmat1( -det , VOL, "e<10" ); // and now see.... only dE plotted; reverse t61d_de=(TH1F*)gDirectory->Get( telename1D ); t61d_de->SetName( telenamede ); // SAVE ................................................. TDirectory *dir=gDirectory; TFile *f2=new TFile( fnamespe ,"UPDATE"); // save to ...fnamespe...Tispectra.root t6bi->SetName( namespe );//.........这里部分代码省略.........
开发者ID:jaromrax,项目名称:mkmat,代码行数:101,
示例8: mainint main(int argc, char * arg[]){ printf("DBC/Map Extractor/n"); printf("===================/n/n"); bool extractDBC = true; bool extractMap = true; for (int i = 0; i < argc; ++i) { if (strcmp(arg[i], ARG_MAP) == 0) extractMap = true; if (strcmp(arg[i], ARG_NOMAP) == 0) extractMap = false; if (strcmp(arg[i], ARG_DBC) == 0) extractDBC = true; if (strcmp(arg[i], ARG_NODBC) == 0) extractDBC = false; } int FirstLocale = -1; int build = 0; for (int i = 0; i < LANG_COUNT; i++) { char tmp1[512]; sprintf(tmp1, "%s/Data/%s/locale-%s.MPQ", input_path, langs[i], langs[i]); if (FileExists(tmp1)) { printf("Detected locale: %s/n", langs[i]); //Open MPQs LoadLocaleMPQFiles(i); //Extract DBC files if (FirstLocale < 0) { FirstLocale = i; build = ReadBuild(FirstLocale); printf("Detected base client build: %u/n", build); if (build != CLIENT_BUILD) { printf("ERROR: your client is not up-to-date. Client build should be %u", CLIENT_BUILD); return 0; } if (extractDBC) ExtractDBCFiles(i, true); } else if (extractDBC) ExtractDBCFiles(i, false); } } if (FirstLocale < 0) { printf("No locales detected/n"); return 0; } if (extractMap) ExtractMapsFromMpq(build); return 0;}
开发者ID:SkyFireArchives,项目名称:SkyFireEMU_406a,代码行数:64,
示例9: Datevoid __fastcall TReportForm::ToolButton3Click(TObject *Sender){ Variant WordApp, WordSel, WordDoc, EmptyParam, table, cell, range; TDateTime dtReport = Date(); UnicodeString s=ExtractFileDir(Application->ExeName)+"//template.doc"; if (!FileExists(s)) { ShowMessage("Файл шаблона не найден"); return; } TVirtualNode *t_root=VirtualStringTree1->RootNode->FirstChild; TVirtualNode *t_child; TReportData *data_root, *data_child; try { WordApp=GetActiveOleObject("Word.Application"); } catch (...) { try { WordApp=CreateOleObject("Word.Application"); } catch (...) { ShowMessage("Microsoft Word не установлен"); return; } } try { WordApp.OlePropertySet("Visible", false); WordDoc=WordApp.OlePropertyGet("Documents").OleFunction("Add", s.t_str());// if (WordDoc.OlePropertyGet("Bookmarks").OleFunction("Exists", "date"))// ShowMessage("!");// WordDoc.OleFunction("GoTo", 0xFFFFFFFF, EmptyParam, EmptyParam, "date").OleFunction("Select"); WordApp.OlePropertyGet("Selection").OleFunction("goto", 0xFFFFFFFF, EmptyParam, EmptyParam, "date"); WordApp.OlePropertyGet("Selection").OleProcedure("TypeText", dtReport.FormatString("dd.mm.yyyy").t_str()); WordApp.OlePropertyGet("Selection").OleFunction("goto", 0xFFFFFFFF, EmptyParam, EmptyParam, "img"); MainForm->Chart5->CopyToClipboardMetafile(true); WordApp.OlePropertyGet("Selection").OleFunction("Paste"); WordApp.OlePropertyGet("Selection").OleFunction("goto", 0xFFFFFFFF, EmptyParam, EmptyParam, "table");// table=WordDoc.OlePropertyGet("Tables").OleFunction("Item", 1);// cell=table.OleFunction("Cell", 1, 1);// range=cell.OlePropertyGet("Range");// range.OlePropertySet("Text", "Fuck"); for (size_t i=0; i < VirtualStringTree1->RootNodeCount; i++) { if (!(t_root == NULL)) { data_root=(TReportData *)ReportForm->VirtualStringTree1->GetNodeData(t_root); if (!(data_root == NULL)) { s=data_root->Name; WordApp.OlePropertyGet("Selection").OleProcedure("TypeText", s.t_str()); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); } else continue; t_child=t_root->FirstChild; while (!(t_child == NULL)) { data_child=(TReportData *)ReportForm->VirtualStringTree1->GetNodeData(t_child); if (!(data_child == NULL) && (t_child->CheckState == csCheckedNormal)) { s=data_child->Name; WordApp.OlePropertyGet("Selection").OleProcedure("TypeText", s.t_str()); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); WordApp.OlePropertyGet("Selection").OleProcedure("TypeText", FloatToStrF(data_child->pcs, ffFixed, 5, 2).t_str()); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); WordApp.OlePropertyGet("Selection").OleProcedure("TypeText", FloatToStrF(data_child->pi, ffFixed, 5, 2).t_str()); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); WordApp.OlePropertyGet("Selection").OleProcedure("TypeText", FloatToStr(data_child->angle).t_str()); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); } t_child=t_child->NextSibling; } WordApp.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Bold", true); WordApp.OlePropertyGet("Selection").OlePropertyGet("ParagraphFormat").OlePropertySet("Alignment", 0); WordApp.OlePropertyGet("Selection").OleProcedure("TypeText", "Средний диаметр"); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); WordApp.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Bold", false); WordApp.OlePropertyGet("Selection").OlePropertyGet("ParagraphFormat").OlePropertySet("Alignment", 1); s=FloatToStrF(data_root->pcs, ffFixed, 5, 2)+" нм."; WordApp.OlePropertyGet("Selection").OleProcedure("TypeText", s.t_str()); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); WordApp.OlePropertyGet("Selection").OleProcedure("TypeText", "Средний ППД"); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); WordApp.OlePropertyGet("Selection").OleProcedure("TypeText", FloatToStrF(data_root->pi, ffFixed, 5, 2).t_str()); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12); WordApp.OlePropertyGet("Selection").OleFunction("MoveRight", 12);//.........这里部分代码省略.........
开发者ID:aquatter,项目名称:DLS-App-test,代码行数:101,
示例10: InjectRemoteint InjectRemote(DWORD nRemotePID, bool abDefTermOnly /*= false */){ int iRc = -1; bool lbWin64 = WIN3264TEST((IsWindows64()!=0),true); bool is32bit; DWORD nWrapperWait = (DWORD)-1, nWrapperResult = (DWORD)-1; HANDLE hProc = NULL; wchar_t szSelf[MAX_PATH+16], szHooks[MAX_PATH+16]; wchar_t *pszNamePtr, szArgs[32]; if (!GetModuleFileName(NULL, szSelf, MAX_PATH)) { iRc = -200; goto wrap; } wcscpy_c(szHooks, szSelf); pszNamePtr = (wchar_t*)PointToName(szHooks); if (!pszNamePtr) { iRc = -200; goto wrap; } hProc = OpenProcess(PROCESS_CREATE_THREAD|PROCESS_QUERY_INFORMATION|PROCESS_VM_OPERATION|PROCESS_VM_WRITE|PROCESS_VM_READ, FALSE, nRemotePID); if (hProc == NULL) { iRc = -201; goto wrap; } // Определить битность процесса, Если он 32битный, а текущий - ConEmuC64.exe // Перезапустить 32битную версию ConEmuC.exe if (!lbWin64) { is32bit = true; // x86 OS! } else { is32bit = false; // x64 OS! // Проверяем, кто такой nRemotePID HMODULE hKernel = GetModuleHandleW(L"kernel32.dll"); if (hKernel) { typedef BOOL (WINAPI* IsWow64Process_t)(HANDLE hProcess, PBOOL Wow64Process); IsWow64Process_t IsWow64Process_f = (IsWow64Process_t)GetProcAddress(hKernel, "IsWow64Process"); if (IsWow64Process_f) { BOOL bWow64 = FALSE; if (IsWow64Process_f(hProc, &bWow64) && bWow64) { // По идее, такого быть не должно. ConEmu должен был запустить 32битный conemuC.exe #ifdef _WIN64 _ASSERTE(bWow64==FALSE); #endif is32bit = true; } } } } if (is32bit != WIN3264TEST(true,false)) { // По идее, такого быть не должно. ConEmu должен был запустить соответствующий conemuC*.exe _ASSERTE(is32bit == WIN3264TEST(true,false)); PROCESS_INFORMATION pi = {}; STARTUPINFO si = {sizeof(si)}; _wcscpy_c(pszNamePtr, 16, is32bit ? L"ConEmuC.exe" : L"ConEmuC64.exe"); _wsprintf(szArgs, SKIPLEN(countof(szArgs)) L" /INJECT=%u", nRemotePID); if (!CreateProcess(szHooks, szArgs, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi)) { iRc = -202; goto wrap; } nWrapperWait = WaitForSingleObject(pi.hProcess, INFINITE); GetExitCodeProcess(pi.hProcess, &nWrapperResult); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); if ((nWrapperResult != CERR_HOOKS_WAS_SET) && (nWrapperResult != CERR_HOOKS_WAS_ALREADY_SET)) { iRc = -203; SetLastError(nWrapperResult); goto wrap; } // Значит всю работу сделал враппер iRc = 0; goto wrap; } // Поехали _wcscpy_c(pszNamePtr, 16, is32bit ? L"ConEmuHk.dll" : L"ConEmuHk64.dll"); if (!FileExists(szHooks)) { iRc = -250; goto wrap;//.........这里部分代码省略.........
开发者ID:alexlav,项目名称:conemu,代码行数:101,
示例11: table/** check that parameter settings make sense */bool Parameter::Validate(){ bool noErrorFlag = true; PARAM_MAP::const_iterator iterParams; for (iterParams = m_setting.begin(); iterParams != m_setting.end(); ++iterParams) { const std::string &key = iterParams->first; if (m_valid.find(key) == m_valid.end()) { UserMessage::Add("Unknown parameter " + key); noErrorFlag = false; } } // required parameters if (m_setting["ttable-file"].size() == 0) { UserMessage::Add("No phrase translation table (ttable-file)"); noErrorFlag = false; } if (m_setting["lmodel-dub"].size() > 0) { if (m_setting["lmodel-file"].size() != m_setting["lmodel-dub"].size()) { stringstream errorMsg(""); errorMsg << "Config and parameters specify " << static_cast<int>(m_setting["lmodel-file"].size()) << " language model files (lmodel-file), but " << static_cast<int>(m_setting["lmodel-dub"].size()) << " LM upperbounds (lmodel-dub)" << endl; UserMessage::Add(errorMsg.str()); noErrorFlag = false; } } if (m_setting["lmodel-file"].size() * (m_setting.find("lmodel-oov-feature") != m_setting.end() ? 2 : 1) != m_setting["weight-l"].size()) { stringstream errorMsg(""); errorMsg << "Config and parameters specify " << static_cast<int>(m_setting["lmodel-file"].size()) << " language model files (lmodel-file), but " << static_cast<int>(m_setting["weight-l"].size()) << " weights (weight-l)"; errorMsg << endl << "You might be giving '-lmodel-file TYPE FACTOR ORDER FILENAME' but you should be giving these four as a single argument, i.e. '-lmodel-file /"TYPE FACTOR ORDER FILENAME/"'"; errorMsg << endl << "You should also remember that each language model requires 2 weights, if and only if lmodel-oov-feature is on."; UserMessage::Add(errorMsg.str()); noErrorFlag = false; } // do files exist? // input file if (noErrorFlag && m_setting["input-file"].size() == 1) { noErrorFlag = FileExists(m_setting["input-file"][0]); } // generation tables if (noErrorFlag) { std::vector<std::string> ext; //raw tables in either un compressed or compressed form ext.push_back(""); ext.push_back(".gz"); noErrorFlag = FilesExist("generation-file", 3, ext); } // distortion if (noErrorFlag) { std::vector<std::string> ext; //raw tables in either un compressed or compressed form ext.push_back(""); ext.push_back(".gz"); //prefix tree format ext.push_back(".binlexr.idx"); noErrorFlag = FilesExist("distortion-file", 3, ext); } return noErrorFlag;}
开发者ID:CUNI-Khresmoi,项目名称:CUNI-Khresmoi-Moses,代码行数:77,
示例12: PrepareHookModuleint PrepareHookModule(wchar_t (&szModule)[MAX_PATH+16]){ int iRc = -251; wchar_t szNewPath[MAX_PATH+16] = {}, szAddName[32] = {}, szVer[2] = {}; INT_PTR nLen = 0; bool bAlreadyExists = false; // Copy szModule to CSIDL_LOCAL_APPDATA and return new path HRESULT hr = SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, szNewPath); if ((hr != S_OK) || !*szNewPath) { iRc = -251; goto wrap; } szVer[0] = MVV_4a[0]; _wsprintf(szAddName, SKIPLEN(countof(szAddName)) L"//" CEDEFTERMDLLFORMAT /*L"ConEmuHk%s.%02u%02u%02u%s.dll"*/, WIN3264TEST(L"",L"64"), MVV_1, MVV_2, MVV_3, szVer); nLen = lstrlen(szNewPath); if (szNewPath[nLen-1] != L'//') { szNewPath[nLen++] = L'//'; szNewPath[nLen] = 0; } if ((nLen + lstrlen(szAddName) + 8) >= countof(szNewPath)) { iRc = -252; goto wrap; } wcscat_c(szNewPath, L"ConEmu"); if (!DirectoryExists(szNewPath)) { if (!CreateDirectory(szNewPath, NULL)) { iRc = -253; goto wrap; } } wcscat_c(szNewPath, szAddName); if ((bAlreadyExists = FileExists(szNewPath)) && FileCompare(szNewPath, szModule)) { // OK, file exists and match the required } else { if (bAlreadyExists) { _ASSERTE(FALSE && "Continue to overwrite existing ConEmuHk in AppLocal"); // Try to delete or rename old version if (!DeleteFile(szNewPath)) { //SYSTEMTIME st; GetLocalTime(&st); wchar_t szBakPath[MAX_PATH+32]; wcscpy_c(szBakPath, szNewPath); wchar_t* pszExt = (wchar_t*)PointToExt(szBakPath); msprintf(pszExt, 16, L".%u.dll", GetTickCount()); DeleteFile(szBakPath); MoveFile(szNewPath, szBakPath); } } if (!CopyFile(szModule, szNewPath, FALSE)) { iRc = -254; goto wrap; } } wcscpy_c(szModule, szNewPath); iRc = 0;wrap: return iRc;}
开发者ID:alexlav,项目名称:conemu,代码行数:78,
示例13: CreateChecksumFiles_OnePerDir/*****************************************************************************static DWORD CreateChecksumFiles_OnePerDir(CONST UINT uiMode,CONST TCHAR szChkSumFilename[MAX_PATH_EX], list<FILEINFO*> *finalList) uiMode : (IN) create MD5 or SFV files szChkSumFilename: (IN) filename without path finalList : (IN) pointer to list of fileinfo pointers on which the action is to be performedReturn Value:returns NOERROR or GetLastError()Notes:- handles the situation if the user want one sfv/md5 file per directory. In every directory a file with the name szChkSumFilename is created*****************************************************************************/static DWORD CreateChecksumFiles_OnePerDir(CONST UINT uiMode,CONST TCHAR szChkSumFilename[MAX_PATH_EX], list<FILEINFO*> *finalList){ DWORD dwResult; TCHAR szCurrentDir[MAX_PATH_EX]; TCHAR szCurChecksumFilename[MAX_PATH_EX]; TCHAR szPreviousDir[MAX_PATH_EX] = TEXT("?:><"); // some symbols that are not allowed in filenames to force // the checksum file creation in the for loop HANDLE hFile = NULL; for(list<FILEINFO*>::iterator it=finalList->begin();it!=finalList->end();it++) { if( (*it)->dwError == NO_ERROR ){ StringCchCopy(szCurrentDir, MAX_PATH_EX, (*it)->szFilename); ReduceToPath(szCurrentDir); if(lstrcmpi(szPreviousDir, szCurrentDir) != 0){ if(hFile) { CloseHandle(hFile); hFile = NULL; } StringCchCopy(szPreviousDir, MAX_PATH_EX, szCurrentDir); StringCchPrintf(szCurChecksumFilename, MAX_PATH_EX, TEXT("%s%s"), szCurrentDir, szChkSumFilename); if(g_program_options.bNoHashFileOverride && FileExists(szCurChecksumFilename)) { continue; } hFile = CreateFile(szCurChecksumFilename, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, NULL); if(hFile == INVALID_HANDLE_VALUE){ return GetLastError(); }#ifdef UNICODE // we need a BOM if we are writing unicode if(!WriteCurrentBOM(hFile)) return GetLastError();#endif if( (uiMode == MODE_SFV) && g_program_options.bWinsfvComp){ dwResult = WriteSfvHeader(hFile); if(dwResult != NOERROR){ CloseHandle(hFile); return dwResult; } } if(g_program_options.bIncludeFileComments) { list<FILEINFO*>::iterator commentIt = it; do { if((*commentIt)->dwError == NO_ERROR) { WriteFileComment(hFile, (*commentIt), (UINT)(GetFilenameWithoutPathPointer((*commentIt)->szFilenameShort) - (*commentIt)->szFilename)); } commentIt++; if(commentIt == finalList->end()) break; StringCchCopy(szCurrentDir, MAX_PATH_EX, (*commentIt)->szFilename); ReduceToPath(szCurrentDir); } while(lstrcmpi(szPreviousDir, szCurrentDir) == 0); } } if(hFile) { dwResult = WriteHashLine(hFile, GetFilenameWithoutPathPointer((*it)->szFilenameShort), (*it)->hashInfo[uiMode].szResult, uiMode == MODE_SFV); if(dwResult != NOERROR){ CloseHandle(hFile); return dwResult; } } } } CloseHandle(hFile); return NOERROR;}
开发者ID:andrew-tpfc,项目名称:RapidCRC-Unicode,代码行数:85,
示例14: DoInstallFiles/////////////////////////////////////////////////////////////////// DoInstallFiles//// Copy directory tree at current dirctory to GetMTASAPath ()/////////////////////////////////////////////////////////////////bool DoInstallFiles ( void ){ SString strCurrentDir = PathConform ( GetSystemCurrentDirectory () ); const SString strMTASAPath = PathConform ( GetMTASAPath () ); SString path1, path2; strCurrentDir.Split ( "//", &path1, &path2, -1 ); SString strDestRoot = strMTASAPath; SString strSrcRoot = strCurrentDir; SString strBakRoot = MakeUniquePath ( strCurrentDir + "_bak_" ); // Clean backup dir if ( !MkDir ( strBakRoot ) ) { AddReportLog ( 5020, SString ( "InstallFiles: Couldn't make dir '%s'", strBakRoot.c_str () ) ); return false; } // Get list of files to install std::vector < SFileItem > itemList; { std::vector < SString > fileList; FindFilesRecursive ( PathJoin ( strCurrentDir, "*" ), fileList ); for ( unsigned int i = 0 ; i < fileList.size () ; i++ ) { SFileItem item; item.strSrcPathFilename = PathConform ( fileList[i] ); item.strDestPathFilename = PathConform ( fileList[i].Replace ( strSrcRoot, strDestRoot ) ); item.strBackupPathFilename = PathConform ( fileList[i].Replace ( strSrcRoot, strBakRoot ) ); itemList.push_back ( item ); } } // See if any files to be updated are running. // If so, terminate them for ( unsigned int i = 0 ; i < itemList.size () ; i++ ) { SString strFile = itemList[i].strDestPathFilename; if ( strFile.EndsWithI( ".exe" ) ) TerminateProcessFromPathFilename ( strFile ); } // Copy current(old) files into backup location for ( unsigned int i = 0 ; i < itemList.size () ; i++ ) { const SFileItem& item = itemList[i]; if ( !FileCopy ( item.strDestPathFilename, item.strBackupPathFilename ) ) { if ( FileExists ( item.strDestPathFilename ) ) { AddReportLog ( 5021, SString ( "InstallFiles: Couldn't backup '%s' to '%s'", *item.strDestPathFilename, *item.strBackupPathFilename ) ); return false; } AddReportLog ( 4023, SString ( "InstallFiles: Couldn't backup '%s' as it does not exist", *item.strDestPathFilename ) ); } } // Try copy new files bool bOk = true; std::vector < SFileItem > fileListSuccess; for ( unsigned int i = 0 ; i < itemList.size () ; i++ ) { const SFileItem& item = itemList[i]; if ( !FileCopy ( item.strSrcPathFilename, item.strDestPathFilename ) ) { // If copy failed, check if we really need to copy the file if ( GenerateSha256HexStringFromFile( item.strSrcPathFilename ) != GenerateSha256HexStringFromFile( item.strDestPathFilename ) ) { AddReportLog ( 5022, SString ( "InstallFiles: Couldn't copy '%s' to '%s'", *item.strSrcPathFilename, *item.strDestPathFilename ) ); bOk = false; break; } } fileListSuccess.push_back ( item ); } // If fail, copy back old files if ( !bOk ) { bool bPossibleDisaster = false; for ( unsigned int i = 0 ; i < fileListSuccess.size () ; i++ ) { const SFileItem& item = fileListSuccess[i]; int iRetryCount = 3; while ( true ) { if ( FileCopy ( item.strBackupPathFilename, item.strDestPathFilename ) ) break; // If copy failed, check if we really need to copy the file if ( GenerateSha256HexStringFromFile( item.strBackupPathFilename ) != GenerateSha256HexStringFromFile( item.strDestPathFilename ) )//.........这里部分代码省略.........
开发者ID:AdiBoy,项目名称:mtasa-blue,代码行数:101,
示例15: Handle_Getint Handle_Get(Dictionary* dictHttpRequest, SOCKET scClientSocket){ int nReturnValue = 0; char* szURI = 0; int nHttpVersion = 0; int bFoundFile = 0; char* szQueryString = 0; char* szPathOfFile = 0; char szIndex = "index.html"; char szPathAfterAdding[260] = { '/0' }; //TODO: Yet to handle this type of method LogMessage(LOG_DEBUG, "Going to handle the Get type of method"); szURI = GetValueFromDictionary(dictHttpRequest, "URI"); if (szURI != NULL) { //Check if the uri has query string. If so then it needs to be handled by cgi. //Based on the URI - search in the local path for the file. If found then send 200 else send 404 not found error LogMessage(LOG_DEBUG, "Got the URI from the request"); LogMessage(LOG_DEBUG, szURI); szQueryString = szURI; while ((*szQueryString) != '?' && (*szQueryString) != '/0') { szQueryString++; } if ((*szQueryString) == '?') { //This is a query string so handle it in a different way. LogMessage(LOG_DEBUG, "Got a query string in uri"); szQueryString++; LogMessage(LOG_DEBUG, szQueryString); } else { LogMessage(LOG_DEBUG, "Query string not found"); bFoundFile = FindFileInLocalPath(szURI, strMappedLocalPath); if (bFoundFile == 0) { //printf_s("/nBHS:ERROR:Cound not find the file in the local path:%s/n", szURI); LogMessage(LOG_ERROR, "Could not find the file in the local path"); nReturnValue = HandleFileNotFound(dictHttpRequest, scClientSocket); } else { //printf_s("/nBHS:INFO:Able to find the file in the local path:%s/n", szURI); LogMessage(LOG_DEBUG, "Able to find the file in local path"); szPathOfFile = GetFilePathFromURI(szURI, strMappedLocalPath); LogMessage(LOG_DEBUG, szPathOfFile); if (szPathOfFile[strnlen_s(szPathOfFile, 260) - 1] == '/') { //Add index.html file LogMessage(LOG_DEBUG, "Its a folder so adding index.html by default"); stringcopy(szPathAfterAdding, strlen(szPathOfFile), szPathOfFile); strcat_s(szPathAfterAdding, 260, szIndex); free(szPathOfFile); if (FileExists(szPathAfterAdding) == 1) { szPathOfFile = (char*)malloc(sizeof(char)*strlen(szPathAfterAdding) + 1); memset(szPathOfFile, '/0', strlen(szPathAfterAdding)+1); stringcopy(szPathOfFile, strlen(szPathAfterAdding), szPathAfterAdding); LogMessage(LOG_DEBUG, "Going to send a http response now"); LogMessage(LOG_DEBUG, szPathOfFile); nReturnValue = HandleGetFileResponse(dictHttpRequest, scClientSocket, szPathOfFile); free(szPathOfFile); szPathOfFile = 0; } else { LogMessage(LOG_DEBUG, "Could not find the index.html file inside the folder"); LogMessage(LOG_DEBUG, szPathAfterAdding); nReturnValue = HandleFileNotFound(dictHttpRequest, scClientSocket); } } else { LogMessage(LOG_DEBUG, "About to handle the Get request of file"); LogMessage(LOG_DEBUG, szPathOfFile); nReturnValue = HandleGetFileResponse(dictHttpRequest, scClientSocket, szPathOfFile); free(szPathOfFile); szPathOfFile = 0; } } } } else { //ERROR handle it LogMessage(LOG_ERROR, "URI was empty"); }//.........这里部分代码省略.........
开发者ID:harsha-kadekar,项目名称:BasicHttpServerClient,代码行数:101,
示例16: Handle_Headint Handle_Head(Dictionary *dictHttpRequest, SOCKET scClientSocket){ int nReturnValue = 0; char *szURI = 0; char *szQueryString = 0; char* szPathOfFile = 0; char szIndex = "index.html"; char szPathAfterAdding[260] = { '/0' }; int bFoundFile = 0; LogMessage(LOG_DEBUG, "Started to hanlde head http request"); szURI = GetValueFromDictionary(dictHttpRequest, "URI"); if (NULL != szURI) { //Check if the uri has query string. If so then it needs to be handled by cgi. //Based on the URI - search in the local path for the file. If found then send 200 else send 404 not found error LogMessage(LOG_DEBUG, "Got URI of request"); LogMessage(LOG_DEBUG, szURI); szQueryString = szURI; while ((*szQueryString) != '?' && (*szQueryString) != '/0') { szQueryString++; } if ((*szQueryString) == '?') { //This is a query string so handle it in a different way. szQueryString++; LogMessage(LOG_DEBUG, "URI has a query string in it"); LogMessage(LOG_DEBUG, szQueryString); } else { LogMessage(LOG_DEBUG, "request does not have query string"); bFoundFile = FindFileInLocalPath(szURI, strMappedLocalPath); if (bFoundFile == 0) { LogMessage(LOG_ERROR, "Could not find the file in the local path"); nReturnValue = HandleFileNotFound(dictHttpRequest, scClientSocket); } else { //printf_s("/nBHS:INFO:Able to find the file in the local path:%s/n", szURI); LogMessage(LOG_DEBUG, "Able to find the file in the local path"); szPathOfFile = GetFilePathFromURI(szURI, strMappedLocalPath); LogMessage(LOG_DEBUG, szPathOfFile); if (szPathOfFile[strnlen_s(szPathOfFile, 260) - 1] == '/') { //Add index.html file stringcopy(szPathAfterAdding, strlen(szPathOfFile), szPathOfFile); strcat_s(szPathAfterAdding, 260, szIndex); free(szPathOfFile); if (FileExists(szPathAfterAdding) == 1) { LogMessage(LOG_DEBUG, "Path is directory, so added index.html to path"); szPathOfFile = (char*)malloc(sizeof(char)*strlen(szPathAfterAdding) + 1); memset(szPathOfFile, '/0', strlen(szPathAfterAdding) + 1); stringcopy(szPathOfFile, strlen(szPathAfterAdding), szPathAfterAdding); LogMessage(LOG_DEBUG, szPathOfFile); nReturnValue = HandleHeadFileResponse(dictHttpRequest, scClientSocket); free(szPathOfFile); szPathOfFile = 0; } else { LogMessage(LOG_DEBUG, "Found to be directory, so added index.html, But file not in local path"); LogMessage(LOG_DEBUG, szPathOfFile); nReturnValue = HandleHeadFileNotFound(dictHttpRequest, scClientSocket); } } else { LogMessage(LOG_DEBUG, "Going to send the head response"); nReturnValue = HandleHeadFileResponse(dictHttpRequest, scClientSocket); free(szPathOfFile); szPathOfFile = 0; } } } } LogMessage(LOG_DEBUG, "Returning after handling head request"); return nReturnValue;}
开发者ID:harsha-kadekar,项目名称:BasicHttpServerClient,代码行数:92,
示例17: mkmat/* * * MAIN LINE * * 1/coef * 2/ de[0] e[0] jsou kanaly od detektoru * tele <0 ==> dE + 1/f*E * */void mkmat(int teleIN, int count=-1, int bins=4, TCutG *cut=NULL, int dimen=2 , const char* VOL="V", const char* CONDITION="" ,double coefover=-0.1 ){ int reverse=0; int tele=teleIN; if (tele<0){ printf("1D PLOTTING IN REVERSE (dE + 1/f*E)/n",""); reverse=1; tele=-1*tele;} printf(" making matrix for telescope T%d%s, #%d, 5000/bins :%d [email C++ FileInfo函数代码示例 C++ FileExist函数代码示例
|