• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ lem::FString类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中lem::FString的典型用法代码示例。如果您正苦于以下问题:C++ FString类的具体用法?C++ FString怎么用?C++ FString使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了FString类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: sqlite_select_int

int lem::sqlite_select_int( struct sqlite3* hdb, const lem::FString & Select )
{
    LEM_CHECKIT_Z( hdb!=NULL );
    LEM_CHECKIT_Z( !Select.empty() );

    int retval=-1;

    sqlite3_stmt *stmt=NULL;
    const char *dummy;
    int res = sqlite3_prepare_v2( hdb, Select.c_str(), Select.length(), &stmt, &dummy );
    if( res==SQLITE_OK )
    {
        res = sqlite3_step( stmt );
        if( res == SQLITE_ROW )
        {
            try
            {
                retval = sqlite3_column_int(stmt,0);
            }
            catch(...)
            {
            }
        }

        sqlite3_finalize(stmt);
    }
    else
    {
        lem::MemFormatter msg;
        msg.printf( "SQLite error: can not execute query %s, message=%us", Select.c_str(), lem::sqlite_errmsg(hdb).c_str() );
        throw E_BaseException( msg.string() );
    }

    return retval;
}
开发者ID:,项目名称:,代码行数:35,代码来源:


示例2: SelectInt

int StorageConnection_SQLITE::SelectInt( const lem::FString &sql, int default_value )
{
 int retval=default_value;

 sqlite3_stmt *stmt=NULL;
 const char *dummy;
 int res = sqlite3_prepare_v2( hdb, sql.c_str(), sql.length(), &stmt, &dummy );
 if( res==SQLITE_OK )
  {
   res = sqlite3_step( stmt );
   if( res == SQLITE_ROW )
    {
     try
      {
       retval = sqlite3_column_int(stmt,0);
      }
     catch(...)
      {
      }
    }

   sqlite3_finalize(stmt);
  }
 else
  {
   lem::MemFormatter msg;
   msg.printf( "SQLite error: can not execute query %s, message=%us", sql.c_str(), lem::sqlite_errmsg(hdb).c_str() );
   throw lem::E_BaseException( msg.string() );
  }

 return retval;
}
开发者ID:mcdir,项目名称:GrammarEngine,代码行数:32,代码来源:StorageConnection_SQLITE.cpp


示例3: rs

void NGramsDBMS::Dump3Grams(
    const lem::FString &suffix,
    const lem::FString &sgm,
    lem::OFormatter &to
)
{
    FString sql = lem::format_str(
        "SELECT w1.word, w2.word, w3.word, w"
        " FROM NGRAM3%s%s, NGRAM_WORDS%s%s w1, NGRAM_WORDS%s%s w2, NGRAM_WORDS%s%s w3"
        " WHERE w1.id=iword1 AND w2.id=iword2 AND w3.id=iword3"
        , suffix.c_str(), sgm.c_str()
        , suffix.c_str(), sgm.c_str()
        , suffix.c_str(), sgm.c_str()
        , suffix.c_str(), sgm.c_str()
    );

    std::unique_ptr<LS_ResultSet> rs(Select(sql));
    while (rs->Fetch())
    {
        UCString s1(rs->GetUCString(0));
        UCString s2(rs->GetUCString(1));
        UCString s3(rs->GetUCString(2));
        const int w = rs->GetInt(3);
        to.printf("%us %us %us [%d]\n", s1.c_str(), s2.c_str(), s3.c_str(), w);
    }

    return;
}
开发者ID:Koziev,项目名称:GrammarEngine,代码行数:28,代码来源:NGramsDBMS.cpp


示例4: cs

void NGramsDBMS::Find1Grams(
    const lem::FString &suffix,
    const lem::FString &sgm,
    int max_w1,
    int min_freq,
    std::map< UCString, std::pair<int, float> > & reslist
)
{
    FString sql = lem::format_str("SELECT wrd.word, w"
        " FROM NGRAM1%s%s, NGRAM_WORDS%s%s WRD"
        " WHERE iword1=wrd.id ORDER BY w DESC"
        , suffix.c_str(), sgm.c_str(), suffix.c_str(), sgm.c_str());

    std::unique_ptr<LS_ResultSet> rs(Select(sql));
    while (rs->Fetch())
    {
        const int f = rs->GetInt(1);
        if (f >= min_freq)
        {
            UCString cs(rs->GetUCString(0));
            const int ciw = f;
            const float cw = float(f) / max_w1;

            auto it = reslist.find(cs);
            if (it == reslist.end())
                reslist.insert(std::make_pair(cs, std::make_pair(ciw, cw)));
        }
    }

    return;
}
开发者ID:Koziev,项目名称:GrammarEngine,代码行数:31,代码来源:NGramsDBMS.cpp


示例5: sql

bool NGramsDBMS::GetStat(
    int order,
    const lem::FString &suffix,
    const lem::FString &segment,
    float &min_w,
    float &max_w,
    lem::int64_t &n
)
{
    if (TableExists(lem::format_str("NGRAM_STATS%d%s%s", order, suffix.c_str(), segment.c_str())))
    {
        lem::FString sql(lem::format_str("SELECT max_w%d, count_n%d FROM NGRAM_STATS%d%s%s",
            order, order, order, suffix.c_str(), segment.c_str()));

        std::unique_ptr<LS_ResultSet> rs(Select(sql));
        if (rs->Fetch())
        {
            const float _max_w = (float)rs->GetInt(0);
            const float _min_w = 0.F;
            const int _n = rs->GetInt(1);

            max_w = max(max_w, _max_w);
            min_w = min(min_w, _min_w);
            n += _n;

            return true;
        }
    }

    return false;
}
开发者ID:Koziev,项目名称:GrammarEngine,代码行数:31,代码来源:NGramsDBMS.cpp


示例6: switch

lem::FString NGramsStorage_SQLITE::StartBulkInsert( const lem::FString &suffix, int order )
{
 switch( order )
 {
  case 1: return lem::format_str( "INSERT INTO NGRAM1%s( id, iword1, w ) ", suffix.c_str() );
  case 2: return lem::format_str( "INSERT INTO NGRAM2%s( id, iword1, iword2, w ) ", suffix.c_str() );
  case 3: return lem::format_str( "INSERT INTO NGRAM3%s( id, iword1, iword2, iword3, w ) ", suffix.c_str() );
  case 4: return lem::format_str( "INSERT INTO NGRAM4%s( id, iword1, iword2, iword3, iword4, w ) ", suffix.c_str() );
  case 5: return lem::format_str( "INSERT INTO NGRAM5%s( id, iword1, iword2, iword3, iword4, iword5, w ) ", suffix.c_str() );
  default: LEM_STOPIT; return lem::FString();
 }
}
开发者ID:mcdir,项目名称:GrammarEngine,代码行数:12,代码来源:NGramsStorage_SQLITE.cpp


示例7: FindWord

int NGramsDBMS::FindWord(
    const lem::FString &suffix,
    const lem::FString &sgm,
    const lem::UCString &word
)
{
    FString sql = lem::format_str("SELECT id FROM NGRAM_WORDS%s%s WHERE word='%s'"
        , suffix.c_str(), sgm.c_str(), to_utf8(word.c_str()).c_str()
    );
    const int id = SelectInt(sql, -1);
    return id;
}
开发者ID:Koziev,项目名称:GrammarEngine,代码行数:12,代码来源:NGramsDBMS.cpp


示例8: ExecuteSql

void NGramsDBMS::CreateIndeces2(const lem::FString &suffix, int order)
{
    for (int k = 0; k < order; ++k)
    {
        if (!IndexExists(format_str("ngrams_idx%d%d%s", order, 3 + k, suffix.c_str()), lem::format_str("NGRAM%d%s", order, suffix.c_str())))
        {
            ExecuteSql(lem::format_str("CREATE INDEX ngrams_idx%d%d%s ON NGRAM%d%s(iword%d)",
                order, k + 3, suffix.c_str(), order, suffix.c_str(), k + 1));
        }
    }

    return;
}
开发者ID:Koziev,项目名称:GrammarEngine,代码行数:13,代码来源:NGramsDBMS.cpp


示例9: UpdateStatistics

void NGramsDBMS::UpdateStatistics(const lem::FString &suffix, int order)
{
    ExecuteSql(lem::format_str("DELETE FROM NGRAM_STATS%d%s", order, suffix.c_str()).c_str());
    std::pair<int, int> p1(0, 0);
    p1 = SelectIntPair(lem::format_str("SELECT Coalesce(max(w),0), count(*) FROM NGRAM%d%s", order, suffix.c_str()).c_str());
    FString sql = format_str(
        "INSERT INTO NGRAM_STATS%d%s( max_w%d, count_n%d ) VALUES ( %d, %d )",
        order, suffix.c_str(), order, order, p1.first, p1.second
    );

    ExecuteSql(sql);

    return;
}
开发者ID:Koziev,项目名称:GrammarEngine,代码行数:14,代码来源:NGramsDBMS.cpp


示例10: sum

lem::int64_t NGramsDBMS::SumFrequency(
    int order,
    const lem::FString &suffix,
    const lem::FString &sgm
)
{
    FString sql = lem::format_str("SELECT sum(w)"
        " FROM NGRAM%d%s%s"
        , order, suffix.c_str(), sgm.c_str()
    );

    const int f = SelectInt(sql, 0);
    return f;
}
开发者ID:Koziev,项目名称:GrammarEngine,代码行数:14,代码来源:NGramsDBMS.cpp


示例11: SelectIntPair

std::pair<int, int> NGramsDBMS::FindRawNGramsID(
    const lem::FString &suffix,
    const lem::FString &segment,
    const lem::UCString &left
)
{
    FString sql = lem::format_str("SELECT w, N.id"
        " FROM NGRAM_WORDS%s%s wrd1, NGRAM1%s%s N"
        " WHERE wrd1.word='%s'AND iword1=wrd1.id"
        , suffix.c_str(), segment.c_str(), suffix.c_str(), segment.c_str()
        , to_utf8(left.c_str()).c_str());

    std::pair<int, int> r = SelectIntPair(sql);

    return r;
}
开发者ID:Koziev,项目名称:GrammarEngine,代码行数:16,代码来源:NGramsDBMS.cpp


示例12: switch

// Итератация по всем 3-граммам
void NGramsDBMS::ForEachRaw3(
    Ngrams &ngrams,
    const lem::FString &suffix,
    const lem::FString &sgm,
    NGramHandler *handler,
    int sorting_type
)
{
    const char *sorting = "";
    switch (sorting_type)
    {
    case 1: sorting = "ORDER BY id"; break;
    case 2: sorting = "ORDER BY w"; break;
    case 3: sorting = "ORDER BY w DESC"; break;
    }

    FString sql = lem::format_str("SELECT NG.id, iword1, iword2, iword3, wrd1.word, wrd2.word, wrd3.word, NG.w"
        " FROM NGRAM3%s%s NG, NGRAM_WORDS%s%s wrd1, NGRAM_WORDS%s%s wrd2, NGRAM_WORDS%s%s wrd3"
        " WHERE wrd1.id=iword1 AND wrd2.id=iword2 AND wrd3.id=iword3"
        " %s"
        , suffix.c_str(), sgm.c_str()
        , suffix.c_str(), sgm.c_str()
        , suffix.c_str(), sgm.c_str()
        , suffix.c_str(), sgm.c_str()
        , sorting
    );

    std::unique_ptr<LS_ResultSet> rs(Select(sql));
    while (rs->Fetch())
    {
        const int id_ngram = rs->GetInt(0);
        const int id_word1 = rs->GetInt(1);
        const int id_word2 = rs->GetInt(2);
        const int id_word3 = rs->GetInt(3);
        UCString word1(rs->GetUCString(4));
        UCString word2(rs->GetUCString(5));
        UCString word3(rs->GetUCString(6));
        const int f = rs->GetInt(7);
        const int ciw = f;

        if (!handler->Do(ngrams, id_ngram, ciw, id_word1, id_word2, id_word3, word1, word2, word3))
            break;
    }

    return;
}
开发者ID:Koziev,项目名称:GrammarEngine,代码行数:47,代码来源:NGramsDBMS.cpp


示例13: sprintf

void NGramsStorage_SQLITE::CreateTable_NGrams5( const lem::FString &suffix )
{
 char asql[1000];

 #if LEM_DEBUGGING==1
 sprintf( asql, "CREATE TABLE NGRAM5%s( "
                "id integer NOT NULL," 
                "iword1 integer NOT NULL,"
                "iword2 integer NOT NULL,"
                "iword3 integer NOT NULL,"
                "iword4 integer NOT NULL,"
                "iword5 integer NOT NULL,"
                "w integer NOT NULL"
                ")", suffix.c_str() );
 #else
 sprintf( asql, "CREATE TABLE NGRAM5%s( "
                "id integer," 
                "iword1 integer,"
                "iword2 integer,"
                "iword3 integer,"
                "iword4 integer,"
                "iword5 integer,"
                "w integer"
                ")", suffix.c_str() );
 #endif
 
 ExecuteSql(asql);

 sprintf( asql, "CREATE TABLE NGRAM_STATS5%s( "
                 "max_w5 integer NOT NULL,"
                 "count_n5 integer NOT NULL"
                 ")", suffix.c_str() );

 ExecuteSql(asql);

 #if LEM_DEBUGGING==1
 sprintf( asql, "CREATE UNIQUE INDEX NGRAM_UNQ5_%s ON NGRAM5%s( iword1, iword2, iword3, iword4, iword5 )", suffix.c_str(), suffix.c_str() );
 ExecuteSql(asql);

 sprintf( asql, "CREATE UNIQUE INDEX ngrams_idx51%s ON NGRAM5%s(id)", suffix.c_str(), suffix.c_str() );
 ExecuteSql(asql);
 #endif

 return;
}
开发者ID:mcdir,项目名称:GrammarEngine,代码行数:45,代码来源:NGramsStorage_SQLITE.cpp


示例14: GetWord

lem::UCString NGramsDBMS::GetWord(const lem::FString &suffix, const lem::FString &segment, int id_word)
{
    FString sql = lem::format_str("SELECT word FROM NGRAM_WORDS%s%s WHERE id=%d"
        , suffix.c_str(), segment.c_str(), id_word
    );

    std::unique_ptr<LS_ResultSet> rs(Select(sql));
    if (rs->Fetch())
    {
        UCString w(rs->GetUCString(0));
        return w;
    }
    else
    {
        LEM_STOPIT;
        return lem::UCString();
    }
}
开发者ID:Koziev,项目名称:GrammarEngine,代码行数:18,代码来源:NGramsDBMS.cpp


示例15: LEM_CHECKIT_Z

void NGramsStorage_SQLITE::SelectFStrings( const lem::FString &Select, lem::Collect<lem::FString> &list )
{
 LEM_CHECKIT_Z( !Select.empty() );

 sqlite3_stmt *stmt=NULL;
 int res = sqlite3_prepare_v2( hdb, Select.c_str(), -1, &stmt, NULL );
 if( res==SQLITE_OK )
  {
   while( sqlite3_step( stmt ) == SQLITE_ROW )
    {
     lem::FString s = lem::sqlite_column_fstring( stmt, 0 );
     list.push_back(s);
    } 

   sqlite3_finalize(stmt);
  }

 return;
}
开发者ID:mcdir,项目名称:GrammarEngine,代码行数:19,代码来源:NGramsStorage_SQLITE.cpp


示例16: SelectInt

int NGramsStorage_SQLITE::SelectInt( const lem::FString &Select, int def )
{
 LEM_CHECKIT_Z( !Select.empty() );

 int retval=def;

 sqlite3_stmt *stmt=NULL;
 int res = sqlite3_prepare_v2( hdb, Select.c_str(), -1, &stmt, NULL );
 if( res==SQLITE_OK )
  {
   if( sqlite3_step( stmt ) == SQLITE_ROW )
    {
     retval = sqlite3_column_int(stmt,0);
    } 

   sqlite3_finalize(stmt);
  }

 return retval;
}
开发者ID:mcdir,项目名称:GrammarEngine,代码行数:20,代码来源:NGramsStorage_SQLITE.cpp


示例17: Execute

void StorageConnection_SQLITE::Execute( const lem::FString &sql )
{
 int res = sqlite3_exec( hdb, sql.c_str(), NULL, NULL, NULL );
 if( res!=SQLITE_OK )
  {
   lem::MemFormatter msg;
   msg.printf( "SQLite error in file %s:%d, message=%us", __FILE__, __LINE__, lem::sqlite_errmsg(hdb).c_str() );
   throw lem::E_BaseException(msg.string());
  }

 return;
}
开发者ID:mcdir,项目名称:GrammarEngine,代码行数:12,代码来源:StorageConnection_SQLITE.cpp


示例18: Error

void StorageConnection_MySQL::Error( const lem::FString &sql )
{
 MySQLCnx *cnx = GetDb();

 #if defined LEM_THREADS
 lem::Process::CritSecLocker guard(&cnx->cs);
 #endif

 lem::MemFormatter mem;
 mem.printf( "Error in MySQL, sql=%s, error=%us", sql.c_str(), lem::mysql_errmsg(cnx->mysql).c_str() );
 throw lem::E_BaseException(mem.string());
}
开发者ID:mcdir,项目名称:GrammarEngine,代码行数:12,代码来源:StorageConnection_MySQL.cpp


示例19: GetDb

bool StorageConnection_MySQL::DoesTableExist( const lem::FString &table_name )
{
 MySQLCnx *cnx = GetDb();

 #if defined LEM_THREADS
 lem::Process::CritSecLocker guard(&cnx->cs);
 #endif

 lem::FString sql( lem::format_str( "SELECT count(*) FROM INFORMATION_SCHEMA.TABLES"
                                    " WHERE TABLE_SCHEMA='%s' AND"
                                    " TABLE_NAME='%s'", schema.c_str(), table_name.c_str() ) );
 return lem::mysql_select_int( cnx->mysql, sql.c_str() )==1;
}
开发者ID:mcdir,项目名称:GrammarEngine,代码行数:13,代码来源:StorageConnection_MySQL.cpp


示例20: Execute

void StorageConnection_MySQL::Execute( const lem::FString &sql )
{
 MySQLCnx *cnx = GetDb();

 #if defined LEM_THREADS
 lem::Process::CritSecLocker guard(&cnx->cs);
 #endif

 int res = mysql_query(cnx->mysql,sql.c_str());
 if( res!=0 )
  Error(sql);

 return;
}
开发者ID:mcdir,项目名称:GrammarEngine,代码行数:14,代码来源:StorageConnection_MySQL.cpp



注:本文中的lem::FString类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ lem::MCollect类代码示例发布时间:2022-05-31
下一篇:
C++ legacy::PassManagerBase类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap