📄 memberdatalist.cpp
字号:
#include "../header/memberdatalist.h"MemberDataList::MemberDataList(){ init(); addGroup("No Group");}MemberDataList::~MemberDataList(){ }void MemberDataList::showList(){ cout<<"enter showList:"<<memberList.size()<<endl; for(int i=0; i<memberList.size(); i++){ MemberData md = memberList.value(i); cout<<"#################################"<<endl; cout<<"index:"<<md.getIndex()<<endl; cout<<"name:"<<md.getName()<<endl; cout<<"phone:"<<md.getPhone()<<endl; cout<<"home:"<<md.getHome()<<endl; cout<<"work:"<<md.getWork()<<endl; cout<<"homefax:"<<md.getHomeFax()<<endl; cout<<"workfax:"<<md.getWorkFax()<<endl; cout<<"email:"<<md.getEmail()<<endl; cout<<"address:"<<md.getAddress()<<endl; cout<<"group:"<<md.getGroup()<<endl; cout<<"picture:"<<md.getPicture()<<endl; cout<<"remarks:"<<md.getRemarks()<<endl; }}void MemberDataList::add(MemberData md){ for(int i=0;i<1000;i++){ if(spaceManager[i] == 0){ cout<<"md:"<<md.getName()<<endl; cout<<"spaceManager[i]:"<<spaceManager[i]<<endl; QString name = QString(md.getName()); for(int i=0;i<5;i++){ if(value(QString(name)).getIndex() != -1){ cout<<"**"<<value(QString(name)).getIndex()<<endl; name = name+"/"; md.setName(name.toAscii().data()); } } md.setIndex(i); spaceManager[i] = 1; writeSaveAddressValue(i,1); WriteSaveDataValue(i,md); break; } } memberList.append(md);}MemberData MemberDataList::value(int i){ return memberList.value(i);}MemberData MemberDataList::value(QString name){ for(int i=0; i<memberList.size(); i++){ if(name == QString(memberList.value(i).getName())){ return memberList.value(i); } } MemberData mb; mb.setIndex(-1); return mb;}void MemberDataList::copyList(QMList &a, QMList &b){ for(int i=0;i<a.size();i++){ b.append(a.value(i)); }}void MemberDataList::sortList(QMList &list){ for(int i=0;i<list.size();i++){ int tempMin = i; for(int j=i;j<list.size();j++){ if(strcmp(list.value(j).getName(),list.value(tempMin).getName())<0){ list.swap(j,tempMin); } } }}void MemberDataList::showSortedList(){ cout<<"enter showSortedList:"<<sortedList.size()<<endl; for(int i=0; i<sortedList.size(); i++){ MemberData md = sortedList.value(i); cout<<"#################################"<<endl; cout<<"index:"<<md.getIndex()<<endl;; cout<<"name:"<<md.getName()<<endl; cout<<"phone:"<<md.getPhone()<<endl; cout<<"home:"<<md.getHome()<<endl; cout<<"work:"<<md.getWork()<<endl; cout<<"homefax:"<<md.getHomeFax()<<endl; cout<<"workfax:"<<md.getWorkFax()<<endl; cout<<"email:"<<md.getEmail()<<endl; cout<<"address:"<<md.getAddress()<<endl; cout<<"group:"<<md.getGroup()<<endl; cout<<"picture:"<<md.getPicture()<<endl; cout<<"remarks:"<<md.getRemarks()<<endl; }}void MemberDataList::toSortedList(){ copyList(memberList,sortedList); sortList(sortedList);}QList<QString> MemberDataList::groupsNameList(){ return groupList;}int MemberDataList::size(){ return memberList.size();}QList<QString> MemberDataList::groupMemberName(QString group){ QList<QString> nameList; for(int i=0;i<memberList.size();i++){ if(group.compare(QString(memberList.value(i).getGroup())) == 0){ nameList.append(QString(memberList.value(i).getName())); } } return nameList;}QList<QString> MemberDataList::quickFind(QString name){ QList<QString> nameList; for(int i=0;i<memberList.size();i++){ QString findname=QString(memberList.value(i).getName()); QString searchname=findname.toUpper(); if(searchname.indexOf(name.toUpper()) != -1){ nameList.append(findname); } } return nameList;}void MemberDataList::addGroup(QString name){ if(groupList.size()==0){ groupList.append(name); } else { for(int i=0;i<groupList.size();i++){ if(name.compare(groupList.value(i)) == 0){ break; } if(i== groupList.size()-1){ groupList.append(name); } } } writeGroupInfo(); cout<<"--"<<groupList.size()<<endl;}void MemberDataList::removeGroup(QString name){ for(int i=0;i<groupList.size();i++){ if(name.compare(groupList.value(i)) == 0){ groupList.removeAt(i); break; } } writeGroupInfo();}void MemberDataList::editGroup(QString name,QString rename){ groupList.removeAll(name); groupList.append(rename); writeGroupInfo();}void MemberDataList::writeSaveAddressValue(int index,int value){ rewind(fp); fseek(fp,index*sizeof(value),SEEK_SET); fwrite(&value,4,1,fp); cout<<"write data:"<<value<<endl;}int MemberDataList::readSaveAddressValue(int index){ rewind(fp); fseek(fp,index*sizeof(index),SEEK_SET); int value; fread(&value,4,1,fp); return value;}void MemberDataList::initSaveAddressValue(){ if((fp=fopen("saveaddress.txt","r+b")) == NULL){ fp=fopen("saveaddress.txt","a+b"); for(int i=0;i<1000;i++){ spaceManager[i]=0; } fwrite(spaceManager,4,1000,fp); } else{ fread(spaceManager,4,1000,fp); } cout<<"+++++++++++++++++++++++++++++"<<endl; for(int i=0;i<1000;i++){ cout<<spaceManager[i]<<" "; }}void MemberDataList::changeValue(QString name,MemberData newValue){ for(int i=0; i<memberList.size(); i++){ if(name == QString(memberList.value(i).getName())){ newValue.setIndex(memberList.value(i).getIndex()); memberList.replace(i, newValue); WriteSaveDataValue(newValue.getIndex(),newValue); break; } }}void MemberDataList::remove(QString name){ for(int i=0; i<memberList.size(); i++){ if(name == QString(memberList.value(i).getName())){ writeSaveAddressValue(memberList.value(i).getIndex(),0); spaceManager[memberList.value(i).getIndex()]=0; memberList.removeAt(i); break; } }}void MemberDataList::WriteSaveDataValue(int index,MemberData value){ rewind(fp); fseek(fp, 4*1000+index*580 ,SEEK_SET); fwrite(&value,sizeof(memberList.value(0)),1,fp);}void MemberDataList::initSaveDataValue(){ rewind(fp); MemberData mb; for(int i=0;i<1000; i++){ if(spaceManager[i] == 1){ rewind(fp); fseek(fp,4*1000+i*580,SEEK_SET); fread(&mb, sizeof(memberList.value(0)), 1, fp); memberList.append(mb); } }}QList<QString> MemberDataList::allNameList(){ QList<QString> list; QString name; for(int i=0;i<memberList.size();i++){ name = QString(memberList.value(i).getName()); list.append(name); } return list;}void MemberDataList::writeGroupInfo(){ int size = groupList.size(); cout<<size<<endl; rewind(gf); fwrite(&size,sizeof(size),1,gf); cout<<"start"<<endl; for(int i=0;i<size;i++) { cout<<"dede"<<endl; fwrite(groupList.value(i).toAscii().data(),32,1,gf); cout<<groupList.value(i).toAscii().data()<<endl; }}void MemberDataList::initGroupInfo(){ if((gf=fopen("savegroup.txt","r+b")) == NULL){ gf=fopen("savegroup.txt","a+b"); } else{ rewind(gf); int size; fread(&size,sizeof(size),1,gf); cout<<"read file size:"<<size<<endl; char name[32]; for(int i=0;i<size;i++){ fread(name,32,1,gf); groupList.append(QString(name)); } } cout<<"read size:"<<groupList.size()<<endl;}void MemberDataList::init(){ initGroupInfo(); cout<<"init group size:"<<groupList.size()<<endl; cout<<"start init address:"<<endl; initSaveAddressValue(); cout<<endl<<"end init address. start data:"<<endl; initSaveDataValue();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -