现在的位置: 首页 > 综合 > 正文

如何将google书签导出到IE

2013年09月20日 ⁄ 综合 ⁄ 共 3558字 ⁄ 字号 评论关闭
用自己的名字重新注册了一个gmail的邮箱,想将原来google用户下的书签导入到新的用户下,但google marker只有从IE导入的功能,于是只能采用一个间接的方法,先将google书签导出,其格式为.html,用记事本打开该文件并用ANSI格式另存为文本文件,I然后再用一个简单的程序读取另存后的文件,在IE收藏夹目录下建立相应的书签,然后再将IE收藏夹导入到新的google marker。下面是该转化小程序,我在网上搜到的都是同一段程序,但原程序有问题,包括算法本身的逻辑错误,以及很多语言错误,还好,我喜欢读别人的程序,所以我仍在原程序的逻辑基础上把它调通了,现在可以运行了。由于是好几天前做的事, 原程序链接我忘了,今天又搜了一下,没找到同一个链接,但下面这个链接也引用了这个程序,基本一样,为尊重原作者,特列出:http://www.vcgood.com/forum_posts.asp?TID=2033

#include <stdio.h>
#include 
<stdlib.h>
#include 
<string.h>
#include 
<windows.h>

#define BUFSIZE 5024
#define TRUE 1
#define FALSE 0

int position;
int state;
int sucImportNum;
int failImportNum;
char *intercept;
char chs[2];
char *user;
char url[BUFSIZE];
char urlFolder[1024];
char *urlName;

/*
函数名:读取GoogleBookmarks函数
功能:读取GoogleBookmarks中的内容
参数列表:
        char *filename 文件名
返回值:void
*/

void readgmk(char *filename);

/*
函数名:解析格式函数
功能:解析GoogleBookmarks格式
参数列表:
        char *line 文件名
返回值:void
*/

void analyseFormat(char *line);

/*
函数名:判断字符串包含函数
功能:判断字符串1中是否包含字符串2
参数列表:
        char *s1 字符串1
        char *s2 字符串2
返回值:int 1为true  0为false
*/

int isCharsContain(char *s1,char *s2);

/*
函数名:判断字符串位置函数
功能:判断字符串2在字符串1中的首次出现位置
参数列表:
        char *s1 字符串1
        char *s2 字符串2
返回值:int 位置信息从0开始,没找到返回-1
*/

int getCharsPosition(char *s1,char *s2);

/*
函数名:判断字符串相等函数
功能:判断字符串1和字符串2相等
参数列表:
        char *s1 字符串1
        char *s2 字符串2
返回值:int 1为true  0为false
*/

int isCharsEquals(char *s1,char *s2);

/*
函数名:截取子字符串函数
功能:截取字符串中从开始位置到结束位置的子串
参数列表:
        char *str 字符串
        int start 开始位置,从0开始
        int end 结束位置
返回值:截取后的字符串
*/

char *interceptChars(char *str,int start,int end);

/*
函数名:字符转字符串函数
功能:将字符转化为字符串
参数列表:
        char ch 字符
返回值:转换后字符串
*/

char *char2chars(char ch);

/*
函数名:保存DAT文件函数
功能:保存到DAT文件内
参数列表:
        char *str 字符串
返回值:void
*/

void saveDat(char *str);

/*
函数名:删除DAT文件函数
功能:删除DAT文件
参数列表:
        void
返回值:void
*/

void delDat();

/*
函数名:读取DAT文件函数
功能:读取DAT文件
参数列表:
        void
返回值:void
*/

void readDat();

/*
函数名:创建URl文件函数
功能:创建URL文件
参数列表:
        char *fullpath 完整路径名
        char *content  url文件内容
返回值:void
*/

void createUrl(char *fullpath,char *content);

/*
函数名:获得当前登录用户函数
功能:获得当前登录用户名
参数列表:
        void
返回值:当前登录用户名
*/

char *getLoginUser();

/*
函数名:拼装URL函数
功能:拼装URL文件所在完整路径
参数列表:
        void
返回值:当前登录用户名
*/

char *spellUrl();

/*
函数名:设置URL文件名函数
功能:设置URL文件名
参数列表:
        char *str 字符串
返回值:void
*/

void setUrlName(char *str);

/*
函数名:获得URL文件名函数
功能:获得URL文件名
参数列表:
        void
返回值:URL文件名
*/

char *getUrlName();
/*
删除字符串里的指定字符,并用空格取代
*/

void deleteCharFromChars(char * str,char chr);

int main(void){
  
char srcpath[BUFSIZE];
  printf(
"收藏夹转换小程序,目的是将GoogleBookmarks导入到Internet Explorer收藏夹,本程序功能相对简单,如发生意外问题,请谅解。");
  printf(
" 请输入GoogleBookmarks.html存放的路径:");
  scanf(
"%s",srcpath);
  printf(
" 准备将GoogleBookmarks中收藏导入到Internet Explorer收藏中......");
  delDat();
  readgmk(srcpath);
//   readDat();
  printf(" 成功导入%d个书签到Internet Explorer收藏夹 ",sucImportNum);
  printf(
" %d个书签导入失败 ",failImportNum);
return 0;
}


void readgmk(char *filename){
  
char tmp[BUFSIZE];
  FILE 
*fp;
  
if((fp=fopen(filename,"r"))==NULL){
    printf(
"读取gmark文件失败");
  }
else{
      sucImportNum
=0;
      failImportNum
=0;
    
while(fgets(tmp,BUFSIZE,fp)!=NULL){
      analyseFormat(tmp);
    }

  }

  fclose(fp);
}


void analyseFormat(char *line){
  
int local1,local2,local3;
  
char *str1,*str2,*str3;
  
if(isCharsContain(line,"HREF")==TRUE){
    local1
=getCharsPosition(line,"HREF");
    str1
=interceptChars(line,local1,strlen(line));
    local2
=getCharsPosition(str1,""");
    str2
=interceptChars(str1,local2+1,strlen(str1));
    local3
=getCharsPosition(str2,""");
    str3
=interceptChars(str2,0,local3);
//     saveDat(str3);
    setUrlName(line);
    
if (str3!=NULL&&urlName!=NULL)
    

抱歉!评论已关闭.