sb の entry.php の復元

sbというblogシステムを使っているが、たまーにentry.phpという記事一覧を保持するデータファイルらしきものが壊れることがある。
古いバージョンのまま使ってるのが原因のような気がするが、今はアップデートする気力がないので、今回も自分でentry.phpを復元することにした。
もしかしたら同じ現象の人もいるかもしれないので、C++での復元プログラムをさらしてみる。sbのファイルフォーマットは自分で適当に想像したものなので、間違ってたらすみません。
ちなみにboostのfilesystemをはじめて使ってみたが、いいね。Unicodeに対応してない&将来にわたって対応の予定がないってところが痛いけど。
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/convenience.hpp>
#include <boost/filesystem/fstream.hpp>
#include <boost/algorithm/string.hpp>
#include <map>

using namespace std;
using namespace boost;

int _tmain(int argc, _TCHAR* argv[])
{
    if (argc != 3) {
        cout << "usage: sb_entry_repair src_sb_entries_path dst_sb_entry_file_path\n";
        return -1;
    }

    namespace fs = boost::filesystem;
    fs::path entries_path = fs::path(argv[1], fs::native);

    const string sHeader("ent\t");  // entry header
    map<int, string> entry_map;
    fs::directory_iterator it_end;
    for (fs::directory_iterator it(entries_path); it != it_end; ++it) {
        if (".php" != to_lower_copy(fs::extension(it->leaf()))) {
            continue;
        }
        fs::ifstream ifs(*it, ios::binary);
        if (!ifs.is_open()) {
            continue;
        }

        string sLine;
        getline(ifs, sLine);
        if (sLine.compare(0, sHeader.size(), sHeader) != 0) {
            continue;
        }
        sLine.erase(0, sHeader.size());

        iterator_range<string::iterator> itrFind = find_nth(sLine, "<>", 9);
        if (!itrFind.empty()) {
            int iEntryNum = atoi(sLine.substr(0, sLine.find_first_of('<')).c_str());
            entry_map[iEntryNum] = copy_range<string>(make_iterator_range(sLine.begin(), itrFind.end()));
        }
    }

    ofstream ofs(argv[2], ios::binary);
    if (ofs.is_open() && !entry_map.empty()) {
        ofs << entry_map.rbegin()->first + 1 << endl;
        for (map<int, string>::const_iterator it = entry_map.begin(); it != entry_map.end(); ++it) {
            ofs << it->second << endl;
        }
    }

    return 0;
}

<< 隨身碟應用!? Site Top FSAA on CAD >>

Comments

cocokdzcocokdz
2006/11/26 10:53 PM
<a href= http://anime-can-anticipate.sdekr.com/in-abaco.html >In abaco</a> <a href= http://anime-budget-resorts.sdekr.com/private-grant.html >Private grant</a> <a href= http://impresa-agricola.sdekr.com/ >impresa agricola</a> <a href= http://anime-ao-liberalismo.sdekr.com/de-salir-del.html >DE SALIR DEL</a> <a href= http://buona-morte.sdekr.com/anime-real-fendi.html >Anime real fendi</a> <a href= http://anime-donando.sdekr.com/ >Anime donando</a> <a href= http://anime-definition-de-la-tragedie.sdekr.com/ >anime definition de la tragedie</a> <a href= http://nutriente-de-la.sdekr.com/baviera-marbella.html >baviera marbella</a> <a href= http://辿-arte-figurativa.sdekr.com/ >辿 arte figurativa</a> <a href= http://anime-italy-rail-pass.sdekr.com/ecco-restaurant.html >Ecco restaurant</a> <a href= http://anime-can-anticipate.sdekr.com/in-abaco.html >In abaco</a> <a href= http://anime-budget-resorts.sdekr.com/private-grant.html >Private grant</a> <a href= http://impresa-agricola.sdekr.com/ >impresa agricola</a> <a href= http://anime-ao-liberalismo.sdekr.com/de-salir-del.html >DE SALIR DEL</a> <a href= http://buona-morte.sdekr.com/anime-real-fendi.html >Anime real fendi</a> <a href= http://anime-donando.sdekr.com/ >Anime donando</a> <a href= http://anime-definition-de-la-tragedie.sdekr.com/ >anime definition de la tragedie</a> <a href= http://nutriente-de-la.sdekr.com/baviera-marbella.html >baviera marbella</a> <a href= http://辿-arte-figurativa.sdekr.com/ >辿 arte figurativa</a> <a href= http://anime-italy-rail-pass.sdekr.com/ecco-restaurant.html >Ecco restaurant</a>
roulette
2006/12/13 12:36 PM
<a href=http://www.jeanniesgifts.com/bon/1588>les meilleures casinos promotions</a> <a href=http://www.jbgrant.com/autre/1465>jeu pc</a> <a href=http://www.highlandbpw.org/jeux/1255>roulette</a> <a href=http://www.highcrestinn.com/cas-fr/1190>casino gratuit</a> <a href=http://www.harvestnow.net/fr-jeu/1131>jeu casino gratuit</a> <a href=http://www.purplepeacockceramics.com/cajeux/2624>machines sous</a> <a href=http://www.raymondforklifts.com/fr-p/3007>bet</a> <a href=http://www.raymondforklifts.com/enligne/3057>top poker en ligne</a> <a href=http://www.highlandbpw.org/gratuit/salles-virtuelles-de-jeux-gratuits.html>salles virtuelles de jeux gratuits</a> <a href=http://www.highcrestinn.com/jeu/1203>jeu online</a> <a href=http://www.jackpothollywood.com/fr/1338>casino virtuel</a> <a href=http://www.highlandbpw.org/bon-fr/1241>bonus</a> <a href=http://www.highcrestinn.com/cas-fr/1183>casino sans tlchargement</a> <a href=http://www.harvestnow.net/fr-cas/1130>gant casino</a> <a href=http://www.highlandbpw.org/bon-fr/1245>les meilleures casinos promotions</a> <a href=http://www.highlandbpw.org/gratuit/jeu-en-ligne-gratuit.html>jeu en ligne gratuit</a> <a href=http://www.hiltondenverairport.com/jeu-po/1280>jouez au poker</a> <a href=http://www.jbgrant.com/proms/1478>salles de poker</a> <a href=http://www.raymondforklifts.com/jepo/2970>jouez au poker</a> <a href=http://www.jackpothollywood.com/meilleur/1357>meilleures promotions en ligne</a>
casino internet
2006/12/13 01:00 PM
<a href=http://www.highlandbpw.org/jeux/1256>salles de jeux</a> <a href=http://www.hi-ontario.com/fr-ca/1174>casino gratuit</a> <a href=http://www.harvestnow.net/fr-cas/1122>casino internet</a> <a href=http://www.jbgrant.com/th-fr/1459>jeu texas holdem</a> <a href=http://www.raymondforklifts.com/fr-p/3012>jeu de carte</a> <a href=http://www.ispecialtyshop.com/fr-casi/1318>casino online</a> <a href=http://www.hiltondenverairport.com/salles/1282>le top de poker en ligne</a> <a href=http://www.jeanniesgifts.com/deca/1564>vido poker</a> <a href=http://www.jackpothollywood.com/meilleur/1355>meilleurs casinos en ligne</a> <a href=http://www.jcbcontracting.com/je-ca/1506>craps</a> <a href=http://www.jaquaart.com/promos/1431>les meilleures poker promotions</a> <a href=http://www.jbgrant.com/autre/1462>jeu</a> <a href=http://www.highlandbpw.org/gratuit/jeu-gratuit.html>jeu gratuit</a> <a href=http://www.jbgrant.com/autre/1463>pacific poker</a> <a href=http://www.raymondforklifts.com/enligne/3043>poker en ligne</a> <a href=http://www.highlandbpw.org/bon-fr/1242>bonus de casino en ligne</a> <a href=http://www.hi-ontario.com/jouez/1168>meilleures salles de jeux</a> <a href=http://www.purplepeacockceramics.com/lig/2637>blackjack en ligne</a> <a href=http://www.jandrimages.com/fr-poker/1387>jeu en ligne</a> <a href=http://www.jeanniesgifts.com/salles/1574>casino de paris</a>
baccarat
2006/12/13 04:37 PM
<a href=http://www.ispecialtyshop.com/jouer/1302>vido poker</a> <a href=http://www.hiltondenverairport.com/gra-fr/1267>poker en ligne gratuit</a> <a href=http://www.purplepeacockceramics.com/lig/2655>top des casinos en ligne</a> <a href=http://www.highlandbpw.org/ca-fr/1234>casino jeu</a> <a href=http://www.highcrestinn.com/jeu/1196>jeu casino gratuit</a> <a href=http://www.raymondforklifts.com/jepo/2984>jeu de poker</a> <a href=http://www.ispecialtyshop.com/jouer/1296>baccarat</a> <a href=http://www.jackpothollywood.com/ligne/1352>jouez au casino en ligne</a> <a href=http://www.jandrimages.com/fr-poker/1385>jeu en ligne</a> <a href=http://www.purplepeacockceramics.com/gratu/2665>jeu casino gratuit</a> <a href=http://www.jbgrant.com/autre/1461>jeu en ligne</a> <a href=http://www.highcrestinn.com/meilleurs/1208>les meilleures casinos promotions</a> <a href=http://www.purplepeacockceramics.com/lig/2645>le top des casinos en ligne</a> <a href=http://www.purplepeacockceramics.com/lig/2647>meilleur casino en ligne</a> <a href=http://www.hi-ontario.com/fr-bra/1149>casino jeu</a> <a href=http://www.harvestnow.net/fr-cas/1118>casino france</a> <a href=http://www.raymondforklifts.com/jepo/2978>jeu de poker en ligne gratuit</a> <a href=http://www.hi-ontario.com/autre/1151>gambling</a> <a href=http://www.jackpothollywood.com/jeux/1368>machine sous</a> <a href=http://www.jandrimages.com/fr-poker/1389>jouez au poker gratuit</a>
machines sous
2006/12/13 05:54 PM
<a href=http://www.ispecialtyshop.com/fr-casi/1312>casino france</a> <a href=http://www.raymondforklifts.com/bon-p/2987>top poker promotions</a> <a href=http://www.purplepeacockceramics.com/cajeux/2630>craps</a> <a href=http://www.harvestnow.net/fr-bac/1107>bonus</a> <a href=http://www.jdcollectibles.com/ca-jo/1557>jouez au casino</a> <a href=http://www.jcbcontracting.com/je-ca/1501>vido poker</a> <a href=http://www.jeanniesgifts.com/salles/1582>casino sans tlchargement</a> <a href=http://www.jackpothollywood.com/ligne/1353>jeu en ligne gratuit</a> <a href=http://www.purplepeacockceramics.com/lig/2638>jouez au casino en ligne</a> <a href=http://www.hi-ontario.com/autre/1155>machines sous</a> <a href=http://www.hi-ontario.com/jouez/1160>jouez au casino en ligne</a> <a href=http://www.jackpothollywood.com/fr/1337>casinos</a> <a href=http://www.purplepeacockceramics.com/lig/2656>top des casinos en ligne</a> <a href=http://www.highlandbpw.org/jeux/1257>vido poker</a> <a href=http://www.raymondforklifts.com/fr-th/2954>online texas holdem</a> <a href=http://www.harvestnow.net/fr-cas/1120>casino en ligne</a> <a href=http://www.hiltondenverairport.com/tex-fr/1287>online texas holdem</a> <a href=http://www.jaquaart.com/jeu-r/1421>jeu en ligne</a> <a href=http://www.hiltondenverairport.com/fr-pok/1262>online poker</a> <a href=http://www.jackpothollywood.com/meilleur/1360>les meilleures casinos promotions</a>
casino en ligne
2006/12/13 07:16 PM
<a href=http://www.jandrimages.com/fr-poker/1377>poker gratuit</a> <a href=http://www.harvestnow.net/fr-jeu/1134>jeu en ligne gratuit</a> <a href=http://www.raymondforklifts.com/enligne/3059>top poker en ligne</a> <a href=http://www.raymondforklifts.com/enligne/3050>online poker</a> <a href=http://www.raymondforklifts.com/fr-p/3013>jeu de carte</a> <a href=http://www.highcrestinn.com/meilleurs/1209>les meilleurs casinos en ligne</a> <a href=http://www.highcrestinn.com/cas-fr/1187>casino ligne</a> <a href=http://www.jdcollectibles.com/sous/1525>vido poker</a> <a href=http://www.highcrestinn.com/meilleurs/1210>meilleur casino en ligne</a> <a href=http://www.jackpothollywood.com/ligne/1350>casino en ligne</a> <a href=http://www.jdcollectibles.com/dernie/1535>meilleur casino en ligne</a> <a href=http://www.jdcollectibles.com/dernie/1545>meilleurs casinos en ligne</a> <a href=http://www.jackpothollywood.com/jeux/1370>vido poker</a> <a href=http://www.raymondforklifts.com/salles-p/2999>salles de poker</a> <a href=http://www.highlandbpw.org/ca-fr/1233>casino internet</a> <a href=http://www.raymondforklifts.com/jepo/2975>jeu de poker gratuit</a> <a href=http://www.jackpothollywood.com/jeux/1365>baccarat</a> <a href=http://www.raymondforklifts.com/salles-p/2999>salles de poker</a> <a href=http://www.hiltondenverairport.com/autre/1290>bet</a> <a href=http://www.jbgrant.com/jeudepo/1450>jeu de poker gratuit</a>
online poker
2006/12/13 07:49 PM
<a href=http://www.highcrestinn.com/meilleurs/1212>meilleurs casinos en ligne</a> <a href=http://www.jbgrant.com/jeudepo/1446>jeu de carte</a> <a href=http://www.jbgrant.com/proms/1473>meilleures salles de poker</a> <a href=http://www.purplepeacockceramics.com/lig/2648>meilleures promotions en ligne</a> <a href=http://www.jcbcontracting.com/casi-fr/1492>casino sans tlchargement</a> <a href=http://www.jbgrant.com/proms/1475>poker en ligne</a> <a href=http://www.raymondforklifts.com/salles-p/2999>salles de poker</a> <a href=http://www.jcbcontracting.com/promos/1509>top promotions en ligne</a> <a href=http://www.raymondforklifts.com/salles-p/3002>meilleures salles de poker</a> <a href=http://www.highlandbpw.org/jeux/1254>machines sous</a> <a href=http://www.jaquaart.com/salle/1435>salles virtuelles de poker gratuit</a> <a href=http://www.jdcollectibles.com/ca-jo/1555>jeu sur internet</a> <a href=http://www.jandrimages.com/fr-poker/1376>salles de poker</a> <a href=http://www.hi-ontario.com/fr-bljack/1144>blackjack</a> <a href=http://www.ispecialtyshop.com/fr-casi/1308>casino ligne</a> <a href=http://www.jaquaart.com/promos/1429>top poker promotions</a> <a href=http://www.jcbcontracting.com/casi-fr/1493>casino on net</a> <a href=http://www.jbgrant.com/autre/1464>online poker</a> <a href=http://www.ispecialtyshop.com/fr-casi/1316>casino virtuel</a> <a href=http://www.jdcollectibles.com/dernie/1538>le top des casinos en ligne</a>
vido poker
2006/12/13 08:45 PM
<a href=http://www.harvestnow.net/fr-jeu/1134>jeu en ligne gratuit</a> <a href=http://www.jdcollectibles.com/sous/1525>vido poker</a> <a href=http://www.highcrestinn.com/cas-fr/1187>casino ligne</a> <a href=http://www.raymondforklifts.com/jepo/2975>jeu de poker gratuit</a> <a href=http://www.highlandbpw.org/ca-fr/1233>casino internet</a> <a href=http://www.jandrimages.com/fr-poker/1377>poker gratuit</a> <a href=http://www.raymondforklifts.com/enligne/3059>top poker en ligne</a> <a href=http://www.jackpothollywood.com/jeux/1365>baccarat</a> <a href=http://www.jdcollectibles.com/dernie/1545>meilleurs casinos en ligne</a> <a href=http://www.jackpothollywood.com/ligne/1350>casino en ligne</a> <a href=http://www.raymondforklifts.com/enligne/3050>online poker</a> <a href=http://www.highcrestinn.com/meilleurs/1209>les meilleurs casinos en ligne</a> <a href=http://www.raymondforklifts.com/salles-p/2999>salles de poker</a> <a href=http://www.raymondforklifts.com/salles-p/2999>salles de poker</a> <a href=http://www.jdcollectibles.com/dernie/1535>meilleur casino en ligne</a> <a href=http://www.hiltondenverairport.com/autre/1290>bet</a> <a href=http://www.jbgrant.com/jeudepo/1450>jeu de poker gratuit</a> <a href=http://www.raymondforklifts.com/fr-p/3013>jeu de carte</a> <a href=http://www.jackpothollywood.com/jeux/1370>vido poker</a> <a href=http://www.highcrestinn.com/meilleurs/1210>meilleur casino en ligne</a>
top des casinos en ligne
2006/12/13 10:09 PM
<a href=http://www.jandrimages.com/depok/1400>jeu de poker gratuit</a> <a href=http://www.jandrimages.com/fr-poker/1374>salles virtuelles de poker gratuit</a> <a href=http://www.highcrestinn.com/jeu/1201>jeu en ligne gratuit</a> <a href=http://www.jaquaart.com/miscellaneus/1441>online texas holdem</a> <a href=http://www.highcrestinn.com/cas-fr/1194>top casinos promotions</a> <a href=http://www.jbgrant.com/proms/1470>le meilleur poker en ligne</a> <a href=http://www.purplepeacockceramics.com/lig/2642>jeu en ligne</a> <a href=http://www.jaquaart.com/jeu-r/1427>jeu</a> <a href=http://www.jackpothollywood.com/bonus/1363>bonus de casino en ligne</a> <a href=http://www.raymondforklifts.com/salles-p/2996>salles de poker en ligne</a> <a href=http://www.highlandbpw.org/ca-fr/1231>casino en line</a> <a href=http://www.ispecialtyshop.com/prom/1328>top casinos en ligne</a> <a href=http://www.jcbcontracting.com/offre/1516>bonus gratuits</a> <a href=http://www.raymondforklifts.com/fr-p/3030>poker</a> <a href=http://www.hi-ontario.com/autre/1157>vido poker</a> <a href=http://www.jeanniesgifts.com/bon/1590>top promotions en ligne</a> <a href=http://www.jcbcontracting.com/offre/1520>meilleures salles de jeux</a> <a href=http://www.jbgrant.com/proms/1480>salles virtuelles de poker gratuit</a> <a href=http://www.jandrimages.com/autre/1404>jeu pc</a> <a href=http://www.hiltondenverairport.com/jeu-po/1279>jeu de carte</a>
jeu java
2006/12/14 02:23 AM
<a href=http://www.raymondforklifts.com/fr-p/3021>jeu java</a> <a href=http://www.ispecialtyshop.com/prom/1327>top casinos promotions</a> <a href=http://www.ispecialtyshop.com/prom/1329>top casino en ligne</a> <a href=http://www.purplepeacockceramics.com/lig/2636>bonus de casino en ligne</a> <a href=http://www.jeanniesgifts.com/bon/1584>bonus</a> <a href=http://www.highcrestinn.com/jeu/1200>jeu en ligne</a> <a href=http://www.ispecialtyshop.com/fr-casi/1315>banque casino</a> <a href=http://www.raymondforklifts.com/jepo/2967>jouez au poker gratuit</a> <a href=http://www.harvestnow.net/fr-vp/1117>vido poker</a> <a href=http://www.hi-ontario.com/fr-ca/1171>casino</a> <a href=http://www.raymondforklifts.com/enligne/3060>jeu en ligne</a> <a href=http://www.jeanniesgifts.com/deca/1568>jeu de cartes</a> <a href=http://www.raymondforklifts.com/salles-p/2996>salles de poker en ligne</a> <a href=http://www.hiltondenverairport.com/promo/1274>bonus de poker en ligne</a> <a href=http://www.jbgrant.com/proms/1481>top poker en ligne</a> <a href=http://www.hiltondenverairport.com/promo/1273>les meilleures poker promotions</a> <a href=http://www.hiltondenverairport.com/salles/1284>salles de poker</a> <a href=http://www.ispecialtyshop.com/bono/1323>bonus de casino en ligne</a> <a href=http://www.raymondforklifts.com/jepo/2969>jouez au poker gratuit</a> <a href=http://www.hi-ontario.com/jouez/1166>les meilleures casinos promotions</a>