icqconfig.cpp
上传用户:zslianheng
上传日期:2013-04-03
资源大小:946k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Visual C++

  1. /***************************************************************************
  2.                           icqconfig.cpp  -  description
  3.                              -------------------
  4.     begin                : Tue Apr 9 2002
  5.     copyright            : (C) 2002 by Zhang Yong
  6.     email                : z-yong163@163.com
  7.  ***************************************************************************/
  8. /***************************************************************************
  9.  *                                                                         *
  10.  *   This program is free software; you can redistribute it and/or modify  *
  11.  *   it under the terms of the GNU General Public License as published by  *
  12.  *   the Free Software Foundation; either version 2 of the License, or     *
  13.  *   (at your option) any later version.                                   *
  14.  *                                                                         *
  15.  ***************************************************************************/
  16. #include <stdio.h>
  17. #include "icqconfig.h"
  18. #define CONFIG_FILE "myicq.cfg"
  19. string IcqConfig::configDir;
  20. void IcqConfig::getAllUsers(UinList &l)
  21. {
  22. string pathName = configDir + CONFIG_FILE;
  23. FILE *file = fopen(pathName.c_str(), "r");
  24. char line[11];
  25. if (file) {
  26. while (fgets(line, sizeof(line), file))
  27. l.push_back(strtoul(line, NULL, 10));
  28. fclose(file);
  29. }
  30. }
  31. void IcqConfig::addUser(uint32 uin)
  32. {
  33. UinList l;
  34. bool newUser = true;
  35. string pathName = configDir + CONFIG_FILE;
  36. FILE *file = fopen(pathName.c_str(), "r");
  37. if (file) {
  38. char line[11];
  39. while (fgets(line, sizeof(line), file)) {
  40. uint32 d = strtoul(line, NULL, 10);
  41. if (d == uin) {
  42. newUser = false;
  43. l.push_front(d);
  44. } else
  45. l.push_back(d);
  46. }
  47. fclose(file);
  48. }
  49. if (newUser)
  50. l.push_front(uin);
  51. file = fopen(pathName.c_str(), "w");
  52. if (file) {
  53. UinList::iterator it;
  54. for (it = l.begin(); it != l.end(); ++it)
  55. fprintf(file, "%lun", *it);
  56. fclose(file);
  57. }
  58. }