kindle paperwhite 简单笔记按名称分类
已更新python,见新博客 http://www.hrwhisper.me/archives/708
写作背景:
南京决赛比赛完那天晚上写的。
使用方法:
将My Clippings.txt 放在e盘根目录下即可。
输出也在e盘根目录。
设计思想:
以下面的笔记为例。在每一段笔记后面都是==========分隔。
同样书名的也会分隔。
而kindle对于不同书只会直接往下继续写。要是同时看几本书就乱七八糟的。
嗯so~
读取第一行作为书名判断,第二行无用数据抛弃掉。
接下来的正文读取到==========为止。
然后按相同书名的输出即可。
当然如果你在标注的同时写了笔记。。我这个功能没做,因为Kpw2打字蛋疼死!
嗯还有就是中文处理有点问题,先不修复了。
反正能用。
行者无疆 (余秋雨) - 您在位置 #1635-1636的标注 | 添加于 2014年8月26日星期二 下午11:33:04 看城市潜力,拥挤的市中心不是标志。市中心是一个旋涡,把衰草污浊旋到了外缘。真正的潜力忽闪在小巷的窗台下,近郊的庭园里。 ========== 行者无疆 (余秋雨) - 您在位置 #1642-1643的标注 | 添加于 2014年8月26日星期二 下午11:33:33 这就像写作,当形容词如女郎盛妆、排比句如情人并肩,那就一定尚未进入文章之道。文章的极致如老街疏桐,桐下旧座,座间闲谈,精致散漫。 城市这篇文章,也是这样。 ==========
源代码:
//kindle笔记简单分类。 //by hrwhisper 2014.8.21 #include<cstdio> #include<cstring> #include<vector> using namespace std; const int MAXLINELENGTH = 10000; //max note length const int MAXBOOK = 1000; //max book numbers char line[MAXLINELENGTH]; const char newNoteTarget[] = "=========="; int curBookLen = 0;//current read book numbers; int curNoteLen = 0; //current note numbers; char bookName[MAXBOOK][MAXLINELENGTH]; //restore all bookName char noteContent[MAXBOOK][MAXLINELENGTH << 4]; //all note content char curBookName[MAXBOOK]; //current book name; vector<int> nameIndex[MAXBOOK]; //the name includes indexs in the same line. int curBookNameIndex(char *name){ int id=-1; for (int i = 0; i < curBookLen; i++) { if (strcmp(name, bookName[i]) == 0) { id = i; return id; } } if (id == -1) { id=curBookLen++; strcpy(bookName[id], name); } return id; } int main() { freopen("E:\\My Clippings.txt","r",stdin); freopen("E:\\result.txt", "w", stdout); while (gets(curBookName) != NULL) { int id = curBookNameIndex(curBookName); printf("%s\n", curBookName); nameIndex[id].push_back(curNoteLen); gets(line); //这是无用数据的,因为是日期 while (gets(line), strcmp(line, newNoteTarget) != 0) { strcat(noteContent[curNoteLen], line); } //printf("%s\n", curBookName); curNoteLen++; } for (int i = 0; i < curBookLen; i++) { puts(bookName[i]); printf("\n"); for (int j = 0; j < nameIndex[i].size(); j++) { printf("%s",noteContent[ nameIndex[i][j] ]); printf("\n\n"); } printf("\n\n\n\n\n%s\n",newNoteTarget); } return 0; }
新 blog : www.hrwhisper.me