norains的专栏

只专注于WINCE开发

用户操作
[即时聊天] [发私信] [加为好友]
norainsID:norains
142907次访问,排名598,好友0人,关注者53人。
代码其实是一种乐趣
norains的文章
原创 189 篇
翻译 0 篇
转载 10 篇
评论 274 篇
norains的公告
联系方式请看置顶文章
最近评论
dfdf:讨厌MFC!我觉得MFC就是太乱了!看似无用的代码不要不行,MD微软啥都给我们做完了,原理性的东西我们却永远没法搞懂了!
ironox:有个地方 我觉得很别扭,不知道怎么办好

比如说 CReg reg(HKEY_CURRENT_USER,TEXT("ControlPanel\Volume"));
ControlPanel\Volume 有可能不存在呀,这个该怎么处理哦?对象虽然创建了,出错了也没提示
szterry:呵呵,果然工作狂技术狂,同感,一样的感觉……不过我才刚毕业一年……搞IT就是玩……
jinlking:这个botton的实现只是在主窗口画了一块区域,对于事件的处理还要放在主窗口的窗口处理函数之中,在对应的消息处理上调用CheckTap来判断是否是此“按钮”,问一下,这种方法与把按钮封装在子窗口中有什么区别,二者使用那个更好?
KUODY:博主真是好人
文章分类
收藏
    相册
    动漫
    文章图片
    程序交流
    xumercury的BLOG
    狗友们的博客
    清蒸石斑鱼
    美女如刀锋
    茁茁的BLOG
    魅力老姐的窝
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 vcf文件分解收藏

    新一篇:  嵌入式UI架构设计漫谈 | 旧一篇: 应届生,你如何应付技术关?

    //========================================================================
    //TITLE:
    //    vcf文件分解
    //AUTHOR:
    //    norains
    //DATE:
    //    Saturday 4-October-2008
    //Environment:
    //    NONE
    //========================================================================
        不知为何,索爱K750再也起不来了,只好去买款NOKIA 5320。所幸的是,之前索爱K750有一部分联系人是存在PC的的玩转手机这款软件中,只是没想到玩转手机是将所有的联系人全部导出到一个文件,而我的5320对同一个文件只能识别一个联系人。无奈,顺手写了个程序,将同一个文件中的联系人提取出来,分别保存为同名文件。
       
        因为只是简单的提取,方便自己,所以路径是固定的。如果各位朋友打算使用该代码,可以将路径改为相对应的文件。当然,最好是做一个弹出对话框,选择文件了,呵呵~
       
        代码如下;
       
        // VCardConvert.cpp : Defines the entry point for the application.
    //

    #include "stdafx.h"
    #include "string"
    #include "vector"
    #include "map"

    #define STR_BEGIN_FLAG  "BEGIN:VCARD"
    #define STR_END_FLAG  "END:VCARD"
    #define STR_NAME_FLAG  ";"
     
    #define STR_FILE_READ  "H:\\电话簿.vcf"
    #define STR_SAVE_FOLDER  "h:\\电话本\\"

    int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)
    {
      // TODO: Place code here.

     HANDLE hFileRead = CreateFile(STR_FILE_READ,GENERIC_READ,NULL,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
     if(hFileRead == INVALID_HANDLE_VALUE)
     {
      return 0x01;
     }

     //The read buffer
     std::vector<char> vtBuf(GetFileSize(hFileRead,NULL),0);

     //Read the file
     DWORD dwRead = 0;
     ReadFile(hFileRead,&vtBuf[0],vtBuf.size(),&dwRead,NULL);
     if(dwRead == 0)
     {
      return 0x02;
     }

     //The buffer for finding
     std::string strBuf(vtBuf.begin(),vtBuf.end());
     std::map<std::string,std::string> mpWrite;
     //std::vector<std::string> vtStore;

     //Store the content
     std::string::size_type posBegin = strBuf.find(STR_BEGIN_FLAG,0);
     std::string::size_type posEnd = 0;
     while(posBegin != std::string::npos)
     {
      posEnd = strBuf.find(STR_END_FLAG,posBegin);
      if(posEnd == std::string::npos)
      {
       break;
      }

      std::string::size_type posNameBegin = strBuf.find(STR_NAME_FLAG,posBegin);
      std::string::size_type posNameEnd = strBuf.find(STR_NAME_FLAG,posNameBegin + 1);
      if(posNameBegin != std::string::npos && posNameEnd != std::string::npos)
      {
       mpWrite.insert(std::make_pair(std::string(strBuf.begin() + posNameBegin + 1, strBuf.begin() + posNameEnd),
               std::string(strBuf.begin() + posBegin, strBuf.begin() + posEnd + strlen(STR_END_FLAG))));
      }

      posBegin = strBuf.find(STR_BEGIN_FLAG,posEnd);
      //vtStore.push_back(std::string(strBuf.begin() + posBegin, strBuf.begin() + posEnd + strlen(STR_END_FLAG)));
     
     
     } 

     CloseHandle(hFileRead);


     //Write the text

     for(std::map<std::string,std::string>::iterator iter = mpWrite.begin(); iter != mpWrite.end(); iter ++)
     {
      std::string strFile = STR_SAVE_FOLDER;
      strFile += iter->first;
      strFile += ".vcf";
      HANDLE hFileWrite = CreateFile(strFile.c_str(),GENERIC_WRITE,NULL,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
      if(hFileWrite == INVALID_HANDLE_VALUE)
      {
       return 0x01;
      }
      DWORD dwWrite = 0;
      WriteFile(hFileWrite,iter->second.c_str(),iter->second.size(),&dwWrite,NULL);
      CloseHandle(hFileWrite);
     }


     return 0;
    }

     

     

    发表于 @ 2008年10月04日 21:39:00|评论(loading...)|编辑|收藏

    新一篇:  嵌入式UI架构设计漫谈 | 旧一篇: 应届生,你如何应付技术关?

    评论

    #talonware 发表于2008-10-13 15:46:51  IP: 222.128.1.*
    踩踩
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © norains