void CHttpTypes::ReadHttpTypesFileL(const TDesC& aFileName) { RFs fs; #if EPOC_SDK >= 0x06000000 User::LeaveIfError(fs.Connect()); iHttpTypesArray = new (ELeave) CDesCArrayFlat(HTTP_TYPES_ARRAY_GRANURALITY); HBufC *config = NULL; // Need to TRAP leaves, because must close the fs (right). // Thus, no point in using the CleanupStack for config either. // TRAPD(err, config = UnicodeLoad::LoadL(fs, aFileName)); if (err == KErrNone && config != NULL) { TLineBuffer buffer(config->Des()); while (!buffer.EOB()) { TPtrC line = buffer.ReadLine(); if (line.Length() > 0) { TRAP(err, ParseTypeLineL(line)); if (err != KErrNone) break; } } } delete config; User::LeaveIfError(err); #else RFile cfg; TFileText cfgtxt; TBuf<256> buffer; User::LeaveIfError(fs.Connect()); User::LeaveIfError(cfg.Open(fs,aFileName,EFileStreamText)); iHttpTypesArray = new (ELeave) CDesCArrayFlat(HTTP_TYPES_ARRAY_GRANURALITY); cfgtxt.Set(cfg); User::LeaveIfError(cfgtxt.Seek(ESeekStart)); cfgtxt.Read(buffer); while (buffer.Length() > 0) { ParseTypeLineL(buffer); cfgtxt.Read(buffer); } cfg.Close(); #endif iHttpTypesArray->Sort(); fs.Close(); }
void CWebServerEnv::ReadConfigFileL(const TDesC& aConfigFileName) //Function which reads and parse the confing file { RFs fs; #if EPOC_SDK >= 0x06000000 User::LeaveIfError(fs.Connect()); HBufC *config = NULL; // Need to TRAP leaves, because must close the fs (right). // Thus, no point in using the CleanupStack for config either. // TRAPD(err, config = UnicodeLoad::LoadL(fs, aConfigFileName)); if (err == KErrNone && config != NULL) { TLineBuffer buffer(config->Des()); while (!buffer.EOB()) { TPtrC line = buffer.ReadLine(); if (line.Length() > 0) { TRAP(err, ParseConfigLineL(fs, line)); if (err != KErrNone) break; } } } delete config; fs.Close(); User::LeaveIfError(err); #else RFile cfg; TFileText cfgtxt; TBuf<256> buffer; User::LeaveIfError(fs.Connect()); User::LeaveIfError(cfg.Open(fs,aConfigFileName,EFileStreamText)); cfgtxt.Set(cfg); User::LeaveIfError(cfgtxt.Seek(ESeekStart)); cfgtxt.Read(buffer); while (buffer.Length() > 0) { ParseConfigLineL(fs,buffer); cfgtxt.Read(buffer); } cfg.Close(); fs.Close(); #endif CheckAndSetDefaultL(); }
void CT_AddressStringTokenizerStep::TestAddressStringTokenizers(CTulAddressStringTokenizer* aAddressStringTokenizer, TFileText& aReader, TDes& aText) { TBuf<KReadBufSize> fileBuffer; // Get count of found items. TInt count(aAddressStringTokenizer->ItemCount()); TEST(count > 0); TPtrC result; // SFoundItem instance CTulAddressStringTokenizer::SFoundItem item; TBool found = aAddressStringTokenizer->Item(item); TEST(found); for(TInt i = 0; i < count; i++) { result.Set(aText.Mid(item.iStartPos, item.iLength)); aReader.Read(fileBuffer); //Comparing parsed result to what read buffer reads from the file. TEST(!fileBuffer.Compare(result) ); if (fileBuffer.Compare(result)) { INFO_PRINTF2(_L("Buffer : %S"), &fileBuffer); INFO_PRINTF2(_L("Result : %S"), &result); } aAddressStringTokenizer->NextItem(item); } }
void CSettings::ConstructL() { RFs fs; RFile file; TFileText text; TLex lex; TBuf<256> buf; User::LeaveIfError(fs.Connect()); if(file.Open(fs,_L("C:\\System\\Apps\\vcall\\times"),EFileRead) != KErrNone) { User::Panic(_L("Config file not open"),KErrNotFound); } text.Set(file); while(text.Read(buf) == KErrNone) { lex.Assign(buf); TInt val; lex.Val(val);//TODO: error handling iTimes.Append(val); } file.Close(); //iTimes.SortSigned();//TODO: fix sort iTimer = CVTimer::NewL(); iTimer->setTimes(iTimes); }
void CTap2MenuAppUi::ReadExceptions() { TInt err=KErrNone; iExceptions.Reset(); if (BaflUtils::FileExists(CEikonEnv::Static()->FsSession(),KExceptionsPath)) //!!!!!!!!!!!!!!!!!!!!!!!!!!! { TBuf<255> val; TLex conv; TUint32 IntVal; RFile filesave; TBuf<255> t; TFileText ft; filesave.Open(CEikonEnv::Static()->FsSession(), KExceptionsPath, EFileRead); ft.Set(filesave); while (ft.Read(val)==KErrNone) { conv.Assign(val); conv.Val(IntVal,EHex); iExceptions.AppendL(TUid::Uid(IntVal)); } filesave.Close(); } else { TParse parse; CEikonEnv::Static()->FsSession().Parse(KExceptionsPath,parse); if (!BaflUtils::FolderExists(CEikonEnv::Static()->FsSession(),parse.DriveAndPath())) { CEikonEnv::Static()->FsSession().MkDirAll(parse.DriveAndPath()); } } }
// ----------------------------------------------------------------------------- // CStartupAdaptationStubModel::ReadConfigFileL // // ----------------------------------------------------------------------------- // void CStartupAdaptationStubModel::ReadConfigFileL() { RDEBUG( _L( "CStartupAdaptationStubModel::ReadConfigFileL." ) ); RFs fs; User::LeaveIfError( fs.Connect() ); CleanupClosePushL( fs ); RFile file; User::LeaveIfError( file.Open( fs, KConfigFile, EFileShareReadersOnly ) ); CleanupClosePushL( file ); TFileText reader; reader.Set( file ); TBuf<256> buf; TLex lex( buf ); for ( TInt i = 0; i < KNumResponseLists; i++ ) { User::LeaveIfError( reader.Read( buf ) ); RDEBUG_1( _L( "CStartupAdaptationStubModel: Config line: %S." ), &buf ); lex.Assign( buf ); ReadStructuredListL( iResponses[ i ].iParts, lex, *( iResponses[ i ].iList ) ); } CleanupStack::PopAndDestroy( 2 ); // file, fs RDEBUG( _L( "CStartupAdaptationStubModel::ReadConfigFileL finished." ) ); }
void CCryptoPluginsLoader::LoadPluginsL() { HBufC *configFileBuf = GetConfigFileNameL(); CleanupStack::PushL(configFileBuf); TPtr configFile(configFileBuf->Des()); RFs fs; User::LeaveIfError(fs.Connect()); CleanupClosePushL(fs); RFile file; User::LeaveIfError(file.Open(fs, configFile, KEntryAttNormal)); CleanupClosePushL(file); TFileText ft; ft.Set(file); TFileName line; User::LeaveIfError(ft.Read(line)); //Load all the plugins do { TFileName filename; filename.Append(KPluginDir); filename.Append(line); //Load... RLibrary plugin; TInt err=plugin.Load(filename); if (err==KErrNone) { CleanupClosePushL(plugin); iPluginDllList.AppendL(plugin); CleanupStack::Pop(&plugin); iPluginNames.AppendL(line); } } while(ft.Read(line) == KErrNone); CleanupStack::PopAndDestroy(&file); CleanupStack::PopAndDestroy(&fs); CleanupStack::PopAndDestroy(configFileBuf); BuildPluginCharacteristicsL(); }
/* * Save Form data, function to be executed when save option is selected. * Creates the second form which allows for selecting the category. */ TBool CYPagesForm1::SaveFormDataL() { CAknPopupFieldText* popupFieldText = static_cast <CAknPopupFieldText*> (ControlOrNull(EYPagesPopup)); if (popupFieldText) { TInt categoryIndex = popupFieldText->CurrentValueIndex(); TBuf <30> KMyTextFile; KMyTextFile.Format(_L("D:\\YPages\\%d%d.txt"), iColor, categoryIndex); RFs fileServer; User :: LeaveIfError (fileServer.Connect()); RFile file; User::LeaveIfError(file.Open(fileServer, KMyTextFile, EFileRead|EFileStreamText)); CleanupClosePushL(file); TFileText fileText; fileText.Set(file); TBuf<100> buffer; buffer = _L(""); RBuf rBuf; rBuf.Create(buffer); rBuf.CleanupClosePushL(); TInt err = KErrNone; while(err != KErrEof) { err = fileText.Read(buffer); if ((err != KErrNone) && (err != KErrEof)) { User :: Leave(err); } if (KErrNone == err) { rBuf.ReAllocL(rBuf.Length() + buffer.Length()+2); rBuf.Append(buffer); rBuf.Append(_L("\n")); } } CAknMessageQueryDialog* dlg = CAknMessageQueryDialog::NewL(rBuf); dlg->PrepareLC(R_ABOUT_HEADING_PANE); dlg->SetHeaderTextL(_L("")); dlg->RunLD(); CleanupStack::PopAndDestroy(&rBuf); CleanupStack::PopAndDestroy(&file); fileServer.Close(); } return ETrue; }
void CDesktopHotKeyAppUi::About() { TFileName filename; GetAppPath(filename); HBufC* textResource = StringLoader::LoadLC(R_ABOUT_FILE); filename.Append(textResource->Des()); CleanupStack::PopAndDestroy(textResource); RFile file; TInt nErr = file.Open(CEikonEnv::Static()->FsSession(), filename, EFileRead | EFileShareAny); if (nErr != KErrNone) return; TFileText fileText; fileText.Set(file); TBuf<128> linePtr; HBufC* iText = NULL; while (fileText.Read(linePtr) == KErrNone) { if (iText!=NULL) { iText = iText->ReAllocL(iText->Length() + linePtr.Length() + 2); iText->Des().Append(linePtr); } else { iText = HBufC::NewL(linePtr.Length() + 2); iText->Des().Append(linePtr); } iText->Des().Append(CEditableText::ELineBreak); } file.Close(); ShowModalAboutDlgL(R_ABOUT_DIALOG_TITLE,iText->Des()); delete iText; }
TBool CHelpContainer::ReadTextL() { TFileName filename; GetAppPath(filename); HBufC* textResource = StringLoader::LoadLC(R_HELP_FILE); filename.Append(textResource->Des()); CleanupStack::PopAndDestroy(textResource); RFile file; TInt nErr = file.Open(CEikonEnv::Static()->FsSession(), filename, EFileRead | EFileShareAny); if (nErr) { return EFalse; } TFileText fileText; fileText.Set(file); TBuf<128> linePtr; while (fileText.Read(linePtr) == KErrNone) { if (iText) { iText = iText->ReAllocL(iText->Length() + linePtr.Length() + 2); iText->Des().Append(linePtr); } else { iText = HBufC::NewL(linePtr.Length() + 2); iText->Des().Append(linePtr); } iText->Des().Append(CEditableText::ELineBreak); } file.Close(); return ETrue; }
void CTap2MenuAppUi::ReadSettings() { TInt err=KErrNone; iSettings.Reset(); if (BaflUtils::FileExists(CEikonEnv::Static()->FsSession(),KSettingPath)) //!!!!!!!!!!!!!!!!!!!!!!!!!!! { TBuf<255> val; RFile filesave; TBuf<10> t; TFileText ft; TUint32 IntVal; filesave.Open(CEikonEnv::Static()->FsSession(), KSettingPath, EFileRead); ft.Set(filesave); while (ft.Read(val)==KErrNone) { TLex conv(val); conv.Val(IntVal,EDecimal); iSettings.Append(IntVal); } filesave.Close(); } else { TParse parse; CEikonEnv::Static()->FsSession().Parse(KSettingPath,parse); if (!BaflUtils::FolderExists(CEikonEnv::Static()->FsSession(),parse.DriveAndPath())) { CEikonEnv::Static()->FsSession().MkDirAll(parse.DriveAndPath()); } iSettings.Append(KPosXP); iSettings.Append(KPosYP); iSettings.Append(KPosXL); iSettings.Append(KPosYL); iSettings.Append(KSize); WriteSettings(); } }
EXPORT_C void bases::test(COperatorMap* aOpMap, CCellMap* aCellMap) { CALLSTACKITEM_N(_CL("bases"), _CL("test")); #ifdef __WINS__ aOpMap->AddRef(); iTimer->Reset(); testing=true; bool first=true; test_flags=0; scale=1.0; proportion=0.9; learning_done=false; RFile testf; TFileText test; int ts_len=15; TBuf<128> filen; TBuf<256> line; TBuf<30> id_d, dt_d; filen.Append(DataDir()); filen.Append(_L("bases_test_data.txt")); op=Cfile_output_base::NewL(AppContext(), _L("bases")); Cfile_output_base& o=*op; CBBSensorEvent e(KCell, KCellIdTuple); TBBCellId cell(KCell); e.iData.SetValue(&cell); e.iData.SetOwnsValue(EFalse); if (testf.Open(Fs(), filen, EFileShareAny | EFileStreamText | EFileRead)==KErrNone) { CleanupClosePushL(testf); test.Set(testf); int j=0; //int beg=23000, end=230000; int beg=0, end=0; while ( test.Read(line) == KErrNone && j < end) { //for (int i=0;i<TEST_DATA_COUNT; i++) { if (! (j % 1000) ) { TBuf<40> msg; msg.Format(_L("Testing at %d"), j); RDebug::Print(msg); } j++; if (j>=beg) { dt_d=line.Left(ts_len); id_d=line.Mid(ts_len+1); TTime time(dt_d); now=time; if (first) { previous_time=now; first_time=now; first=false; previous_day=previous_time; } if (! id_d.Compare(_L("SWITCH"))) { started=true; } else { e.iStamp()=time; CCellMap::Parse(id_d, cell.iCellId(), cell.iLocationAreaCode(), cell.iShortName()); if (cell.iCellId()==0 && cell.iLocationAreaCode()==0) { cell.iMCC()=0; cell.iMNC()=0; } else { aOpMap->NameToMccMnc(cell.iShortName(), cell.iMCC(), cell.iMNC()); } cell.iMappedId()=aCellMap->GetId(cell); NewSensorEventL(KNoTuple, KNullDesC, e); // name is ignored } } } CleanupStack::PopAndDestroy(); // testf } e.iData.SetValue(0); if (! (test_flags & NO_DB_UPDATE) ) { read_from_database(false, 0); } line.Format(_L("total %f\n"), total_t); o.write_to_output(line); cell_list_node* n=first_cell; while (n) { TInt base=0; if (n->is_base) base=1; line.Format(_L("%d: t %f f %d cum_t %f base %d merged to %d\n"), n->id, n->t, n->f, n->cum_t, base, n->merged_to); o.write_to_output(line); n=n->next; } o.write_to_output(_L("MAPPINGS:\n")); aCellMap->PrintMapping(o); delete op; User::LeaveIfError(table.SetIndex(idx_id)); testing=false; //clear(); iTimer->Wait(CELL_REFRESH); aOpMap->Release(); #endif }
/** @SYMTestCaseID UIF-ETUL-0009 @SYMREQ 7736 @SYMTestCaseDesc Test to Parse for URI's, Email Addresses, Phone Numbers and URL's in a file and to verify them @SYMTestPriority High @SYMTestStatus Implemented @SYMTestActions Constructs CTulAddressStringTokenizer object with CTulAddressStringTokenizer::EFindItemSearchMailAddressBin \n which parses the given string and creates an item array consisting of all the Email addresses\n API Calls:\n CTulAddressStringTokenizer::NewL(const TDesC& aText, TInt aSearchCases);\n CTulAddressStringTokenizer::Item(SFoundItem& aItem); \n CTulAddressStringTokenizer::NextItem(SFoundItem& aItem); \n @SYMTestExpectedResults The test checks whether 1. Phone numbers, Email addresses, URL's and URI's parsed by CTulAddressStringTokenizer are the correct ones. */ void CT_AddressStringTokenizerStep::ParseURIFileL() { INFO_PRINTF1(_L("Test begins")); __UHEAP_MARK; //load test case text to string RFs rfs; User::LeaveIfError(rfs.Connect()); CleanupClosePushL(rfs); _LIT(KParesTextFile, "z:\\system\\data\\addressstringtokenizertestappdata.txt"); _LIT(KParesTextFileRef, "z:\\system\\data\\addressstringtokenizertestappdataref.txt"); RFile file; HBufC* fullBuf = HBufC::NewMaxLC(KFullBufSize); TPtr fullBufPtr = fullBuf->Des(); fullBufPtr = KNullDesC; TFileText reader; TBuf<KReadBufSize> fileBuffer; if ((file.Open(rfs, KParesTextFile, EFileStreamText|EFileRead|EFileShareAny)) == KErrNone) { CleanupClosePushL(file); // use TFileText for reading file. There is probably better ways to do this tho. reader.Set(file); if (reader.Seek(ESeekStart)) { INFO_PRINTF1(_L("File corrupted")); User::Leave(KErrGeneral); // not cleaning up properly } while (!reader.Read(fileBuffer)) { fullBufPtr.Append(fileBuffer); fullBufPtr.Append('\n'); } CleanupStack::Pop(&file); file.Close(); } else { INFO_PRINTF1(_L("z:\\system\\data\\addressstringtokenizertestappdata.txt not found")); User::Leave(KErrNotFound); } if (file.Open(rfs, KParesTextFileRef, EFileStreamText|EFileRead|EFileShareAny) == KErrNone) { CleanupClosePushL(file); // use TFileText for reading file. There is probably better way to do this tho. reader.Set(file); if (reader.Seek(ESeekStart)) { INFO_PRINTF1(_L("File corrupted")); User::Leave(KErrGeneral); // not cleaning up properly } } else { INFO_PRINTF1(_L("z:\\system\\data\\addressstringtokenizertestappdataref.txt not found")); User::Leave(KErrNotFound); } INFO_PRINTF1(_L("Start searching...")); // Create an instance of Address String Tokenizer and search for URL's. CTulAddressStringTokenizer* addressString = CTulAddressStringTokenizer::NewL(fullBufPtr, CTulAddressStringTokenizer::EFindItemSearchURLBin); TestAddressStringTokenizers(addressString, reader, fullBufPtr); delete addressString; // find phone numbers from same text addressString = CTulAddressStringTokenizer::NewL(fullBufPtr, CTulAddressStringTokenizer::EFindItemSearchPhoneNumberBin); TestAddressStringTokenizers(addressString, reader, fullBufPtr); // test do new search with same instance TInt count = addressString->DoNewSearchL(fullBufPtr, CTulAddressStringTokenizer::EFindItemSearchMailAddressBin); TEST(count > 0); TestAddressStringTokenizers(addressString, reader, fullBufPtr); delete addressString; // find schemed URIs from same text addressString = CTulAddressStringTokenizer::NewL(fullBufPtr, CTulAddressStringTokenizer::EFindItemSearchScheme); TestAddressStringTokenizers(addressString, reader, fullBufPtr); delete addressString; // find everything from same text addressString = CTulAddressStringTokenizer::NewL(fullBufPtr, (CTulAddressStringTokenizer::TTokenizerSearchCase)(CTulAddressStringTokenizer::EFindItemSearchPhoneNumberBin | CTulAddressStringTokenizer::EFindItemSearchURLBin | CTulAddressStringTokenizer::EFindItemSearchMailAddressBin | CTulAddressStringTokenizer::EFindItemSearchScheme)); TestAddressStringTokenizers(addressString, reader, fullBufPtr); delete addressString; CleanupStack::PopAndDestroy(3, &rfs); __UHEAP_MARKEND; }
EXPORT_C TInt TEFparser::GetSectionData(TDesC& aScriptFilepath, TPtrC& aSectiontag, TDesC16 &aTocspTestFile, RFs& aFs) { TInt err = KErrNone; TInt pos = 0; RFile file; // open the .ini file if (BaflUtils::FolderExists(aFs, aScriptFilepath)) { if (BaflUtils::FileExists( aFs, aScriptFilepath )) { file.Open(aFs, aScriptFilepath, EFileRead | EFileShareAny); TFileText aLineReader; TBuf<256> iLine; TBuf<256> tempsectID; // create the section name to search for tempsectID.Copy(KOpenBrk); tempsectID.Append(aSectiontag); tempsectID.Append(KCloseBrk); // read the ini file a line at a time until you find the the section name aLineReader.Set(file); TInt foundTag = -1; while (err != KErrEof && foundTag != 0) { err = aLineReader.Read(iLine); if (err != KErrEof) foundTag = iLine.Find(tempsectID); } // create the next open bracket to search for TBuf<2> tempopenBrk; tempopenBrk.Copy(KOpenBrk); RFile testfile; err = KErrNone; foundTag = -1; // while not at the end of the file and not found the next open bracket while (err != KErrEof && foundTag != 0) { // get the next line of the .ini file err = aLineReader.Read(iLine); if (err != KErrEof) { // if the line of the file doesn't contain an open bracket, we are still in the section body foundTag = iLine.Find(tempopenBrk); if (BaflUtils::FolderExists(aFs, aTocspTestFile) && foundTag != 0) { // open the test file we are going to write all our section info into if (BaflUtils::FileExists( aFs, aTocspTestFile )) { testfile.Open(aFs, aTocspTestFile, EFileWrite|EFileShareAny); testfile.Seek(ESeekEnd, pos); } else { User::LeaveIfError(testfile.Create(aFs, aTocspTestFile, EFileWrite|EFileShareAny)); testfile.Open(aFs, aTocspTestFile, EFileWrite|EFileShareAny); } // append to line of the file end of line characters iLine.Append(_L("\r\n")); // write line of the code out to the test file in UNICODE format TPtrC8 tmpPoint((TText8*)iLine.Ptr(),iLine.Size()); testfile.Write(tmpPoint); testfile.Flush(); } testfile.Close(); } } } } return KErrNone; }
PJ_END_DECL /* Get Symbian phone model info, returning length of model info */ unsigned pj_symbianos_get_model_info(char *buf, unsigned buf_size) { pj_str_t model_name; /* Get machine UID */ TInt hal_val; HAL::Get(HAL::EMachineUid, hal_val); pj_ansi_snprintf(buf, buf_size, "0x%08X", hal_val); pj_strset2(&model_name, buf); /* Get model name */ const pj_str_t st_copyright = {"(C)", 3}; const pj_str_t st_nokia = {"Nokia", 5}; char tmp_buf[64]; pj_str_t tmp_str; _LIT(KModelFilename,"Z:\\resource\\versions\\model.txt"); RFile file; RFs fs; TInt err; fs.Connect(1); err = file.Open(fs, KModelFilename, EFileRead); if (err == KErrNone) { TFileText text; text.Set(file); TBuf16<64> ModelName16; err = text.Read(ModelName16); if (err == KErrNone) { TPtr8 ptr8((TUint8*)tmp_buf, sizeof(tmp_buf)); ptr8.Copy(ModelName16); pj_strset(&tmp_str, tmp_buf, ptr8.Length()); pj_strtrim(&tmp_str); } file.Close(); } fs.Close(); if (err != KErrNone) goto on_return; /* The retrieved model name is usually in long format, e.g: * "© Nokia N95 (01.01)", "(C) Nokia E52". As we need only * the short version, let's clean it up. */ /* Remove preceding non-ASCII chars, e.g: "©" */ char *p = tmp_str.ptr; while (!pj_isascii(*p)) { p++; } pj_strset(&tmp_str, p, tmp_str.slen - (p - tmp_str.ptr)); /* Remove "(C)" */ p = pj_stristr(&tmp_str, &st_copyright); if (p) { p += st_copyright.slen; pj_strset(&tmp_str, p, tmp_str.slen - (p - tmp_str.ptr)); } /* Remove "Nokia" */ p = pj_stristr(&tmp_str, &st_nokia); if (p) { p += st_nokia.slen; pj_strset(&tmp_str, p, tmp_str.slen - (p - tmp_str.ptr)); } /* Remove language version, e.g: "(01.01)" */ p = pj_strchr(&tmp_str, '('); if (p) { tmp_str.slen = p - tmp_str.ptr; } pj_strtrim(&tmp_str); if (tmp_str.slen == 0) goto on_return; if ((unsigned)tmp_str.slen > buf_size - model_name.slen - 3) tmp_str.slen = buf_size - model_name.slen - 3; pj_strcat2(&model_name, "("); pj_strcat(&model_name, &tmp_str); pj_strcat2(&model_name, ")"); /* Zero terminate */ buf[model_name.slen] = '\0'; on_return: return model_name.slen; }
TFileName CPixelMetricsMapperAppUi::CreateLayoutNameL(TFileText& aFileHandle) const { aFileHandle.Seek(ESeekStart); // Layout data is deployed like this: // first line - height // second line - width TFileName lines; TFileName layoutName; TInt height = -666; TInt width = -666; // Collect name information. for (TInt i=0; i<6; i++) { User::LeaveIfError(aFileHandle.Read(lines)); // Remove pixel metrics name and ":" lines = lines.Mid(lines.Find(KColon)+1); // Remove tab lines = lines.Mid(lines.Find(KTab)+1); TLex myLexer(lines); TInt error = KErrNone; if (i==0) //height is first { error = myLexer.Val(height); } if (i==1) //width is second { error = myLexer.Val(width); } User::LeaveIfError(error); } // Interpret results and write name to buffer. if ( (width == 240 && height == 320) || (width == 320 && height == 240)) { layoutName.Append(_L("QVGA ")); } else if ( (width == 360 && height == 640) || (width == 640 && height == 360)) { layoutName.Append(_L("NHD ")); } else if ( (width == 480 && height == 640) || (width == 640 && height == 480)) { layoutName.Append(_L("VGA ")); } else if ( (width == 800 && height == 352) || (width == 352 && height == 800)) { layoutName.Append(_L("E90 ")); } else if ( (width == 800 && height == 480) || (width == 480 && height == 800) || (width == 848 && height == 480) || (width == 480 && height == 848) || (width == 854 && height == 480) || (width == 480 && height == 854)) { layoutName.Append(_L("WVGA ")); } else if ( (width == 480 && height == 320) || (width == 320 && height == 480) || (width == 640 && height == 240) || (width == 240 && height == 640)) { layoutName.Append(_L("HVGA ")); } else { layoutName.Append(_L("Unknown ")); layoutName.AppendNum(height); layoutName.Append(_L("x")); layoutName.AppendNum(width); } if (width > height) { layoutName.Append(_L("Landscape")); } else { layoutName.Append(_L("Portrait")); } return layoutName; }
void CPixelMetricsMapperAppUi::CreateHeaderFileL() const { // Open/create resulting file. RFile file; HBufC* layoutFile = HBufC::NewLC( KMaxFileName ); *layoutFile = KLayoutSourceFileAndPath; TFileName fileName = *layoutFile; CleanupStack::PopAndDestroy(layoutFile); RFs& fs = CEikonEnv::Static()->FsSession(); TInt error = file.Open(fs,fileName, EFileWrite|EFileShareAny|EFileStreamText ); if (error==KErrNotFound) { file.Create(fs,fileName, EFileWrite|EFileShareAny|EFileStreamText); } CleanupClosePushL( file ); file.SetSize( 0 ); // Make all writes as from textfile. TFileText textFile; textFile.Set( file ); textFile.Seek( ESeekStart ); // Take all layout files from private folder. CDir* dirList; User::LeaveIfError(fs.GetDir( KPixelMetricsDataFiles, KEntryAttMaskSupported, ESortByName, dirList)); TMySmallBuffer bufferLayoutHdr; TMyBigBuffer bufferPMData; TInt fileCount = dirList->Count(); for (TInt i=0;i<fileCount;i++) { // open sourcefile RFile sourceFile; TFileName layoutFile = (*dirList)[i].iName; User::LeaveIfError( sourceFile.Open( fs,layoutFile, EFileRead|EFileShareAny|EFileStreamText )); CleanupClosePushL( sourceFile ); // Make all reads as from textfile. TFileText textSourceFile; textSourceFile.Set( sourceFile ); TFileName layoutName = CreateLayoutNameL( textSourceFile ); // rewind - just in case. textSourceFile.Seek( ESeekStart ); TFileName oneline; bufferLayoutHdr.Append(KOpenBrace); bufferPMData.Append(KOpenBrace); TInt loop = 0; FOREVER { if( textSourceFile.Read(oneline) != KErrNone ) { break; } // Add commas for all but first line if (loop != 0) { if ( loop <= KHeaderValues-1) { bufferLayoutHdr.Append(KComma); } else { if (loop != KHeaderValues) { bufferPMData.Append(KComma); } } if (loop==KHeaderValues) { bufferLayoutHdr.Append(_L(",QLatin1String(\"")); bufferLayoutHdr.Append(layoutName); bufferLayoutHdr.Append(_L("\")")); } } // Remove pixel metrics name and ":" oneline = oneline.Mid(oneline.Find(KColon)+1); // Remove tab oneline = oneline.Mid(oneline.Find(KTab)+1); // remove crap from the end of line TLex lex(oneline); TInt nextValue = -666; User::LeaveIfError( lex.Val(nextValue) ); if ( loop <= KHeaderValues-1) { bufferLayoutHdr.AppendNum(nextValue); } else { if (nextValue == -909) bufferPMData.Append(_L("ECommonStyleValue")); else bufferPMData.AppendNum(nextValue); } oneline.Zero(); loop++; } file.Flush(); bufferLayoutHdr.Append(KEndBraceWithCommaAndCRLF); bufferPMData.Append(KEndBraceWithCommaAndCRLF); CleanupStack::PopAndDestroy(); //sourceFile } if (fileCount > 0) { bufferLayoutHdr = bufferLayoutHdr.Left(bufferLayoutHdr.Length()-2); bufferPMData = bufferPMData.Left(bufferPMData.Length()-2); textFile.Write(bufferLayoutHdr); textFile.Write(KCRLF); textFile.Write(bufferPMData); } delete dirList; CleanupStack::PopAndDestroy(); //file }
void CMyServer::ReadConf() { __LOGSTR("ReadConf"); if(iFile.Open(iFs,KFileConfig,EFileRead) != KErrNone) {//file not exist __LOGSTR("File not exist"); TInt err = iFs.MkDirAll(KFileConfigDir); __LOGSTR1("Mkdir: %d",err); iFile.Replace(iFs,KFileConfig,EFileRead|EFileWrite); TFileText text; iFile.Write(0,_L8("\xff\xfe"));//signature text.Set(iFile); text.Write(_L("140"));//iX text.Write(_L("190"));//iY text.Write(_L("120"));//iLandY text.Write(_L("150"));//iLandX text.Write(_L("15"));//iHeight text.Write(_L("0xffffff"));//TRgb white text.Write(_L("0x102750f0"));//default UID iFile.Close(); ReadConf(); }else{ __LOGSTR("File exist"); //file exist TFileText text; TLex lex; TBuf<32> buf; text.Set(iFile); text.Read(buf); lex.Assign(buf); lex.Val(iConfig.iX); text.Read(buf); lex.Assign(buf); lex.Val(iConfig.iY); text.Read(buf); lex.Assign(buf); lex.Val(iConfig.iLandY); text.Read(buf); lex.Assign(buf); lex.Val(iConfig.iLandX); text.Read(buf); lex.Assign(buf); lex.Val(iConfig.iHeight); text.Read(buf); if(buf.Left(2)==_L("0x")) buf.Delete(0,2); lex.Assign(buf); TUint32 rgb; lex.Val(rgb,EHex); iConfig.iColor = rgb; text.Read(buf); buf.Delete(0,2); // delete 0x lex.Assign(buf); TUint tempuid; lex.Val(tempuid,EHex); iConfig.iUid.iUid = tempuid; iFile.Close(); } }