已更新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;
}