⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 phone.c

📁 功能丰富的串口通讯程序
💻 C
📖 第 1 页 / 共 5 页
字号:
 Exit = 0; i = 0; Temp[0]=0; nl(); while (!Exit)   switch(getstring(PhoneScreen, LINES/2,Center+1,Temp,ValidEdit,"\n\e\t",21,-1,Temp)){   case '\e':      Exit = 1;     break;   case '\n':     Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;     for (i=0;i<TermHeader.Num;i++)     {      PasToChar(Tmp->Name, TempStr);      if (nocasestrstr(TempStr, Temp) != NULL){       TermCurrentPos = Tmp;       TermCurrentNumber = i+1;       TermHeader.ScrPos = 0;       delete Win;       ShowTermBook(1);       Win = new tWindow(PhoneScreen, Center, (LINES/2)-1, Center+22, (LINES/2)+1,                 Integers[cInfoBold] >> 4, Integers[cInfoBold] % 16);       Win->Frame(2, Integers[cInfoBold]);       Win->Headline("Speed search", Integers[cInfoBold]);       wrefresh(PhoneScreen);       break;       }       else Tmp = (tTermPhoneRec *)Tmp->Next;     }     break;   case '\t':     Tmp = (tTermPhoneRec *)TermCurrentPos->Next;     for (i=TermCurrentNumber;i<TermHeader.Num;i++)     {      PasToChar(Tmp->Name, TempStr);      if (nocasestrstr(TempStr, Temp) != NULL){       TermCurrentPos = Tmp;       TermCurrentNumber = i+1;       TermHeader.ScrPos = 0;       delete Win;       ShowTermBook(1);       Win = new tWindow(PhoneScreen, Center, (LINES/2)-1, Center+22, (LINES/2)+1,                 Integers[cInfoBold] >> 4, Integers[cInfoBold] % 16);       Win->Frame(2, Integers[cInfoBold]);       Win->Headline("Speed search", Integers[cInfoBold]);       clearok(PhoneScreen, TRUE);       wrefresh(PhoneScreen);       break;      }      else Tmp = (tTermPhoneRec *)Tmp->Next;     }     break;   default:break; }   delete Win;}void EnterPassword(char *Putin){ tWindow *Win; int Center, Exit, i; char Temp[20]; Center = findCenter(1,COLS,24); Win = new tWindow(PhoneScreen, Center, (LINES/2)-1, Center+25, (LINES/2)+1,           Integers[cInfoBold] >> 4, Integers[cInfoBold] % 16); Win->Frame(2, Integers[cInfoBold]); Win->Headline("Enter password", Integers[cInfoBold]); wrefresh(PhoneScreen); textAttr(PhoneScreen, Integers[cInfoBold]); Exit = 0; i = 0; Temp[0]=0; switch(getstring(PhoneScreen, LINES/2,Center+1,Temp,ValidEdit,"\n\e\t",24,-1,Temp)){ case '\e':    Exit = 1;   break; case '\n':   Exit = 2;   break; default:break; }  if (Exit == 2) strcpy(Putin, Temp);  delete Win;}void TermGlobalDefs(){ int Key, i, j, x, OnlyTag; tTermPhoneRec *Tmp; char Temp[256]; tWindow *Win; tMenu *Menu; Win = new tWindow(PhoneScreen, 40, 0, 70, 17, Integers[cMenu] >> 4, Integers[cMenu] % 16); Win->Frame(1, Integers[cMenu]); Win->Headline("Global definitions", Integers[cMenuTitle]); Menu = new tMenu(PhoneScreen, Integers[cMenuText], Integers[cMenuHot], Integers[cMenuBar], Integers[cMenuText],             ALIGNLEFT); Menu->Add("Set range", 41, 70, 1); Menu->Add("Only tagged", 41, 70, 2); Menu->Add("Find/Replace baud", 41, 70, 3); Menu->Add("Change bauds", 41, 70, 4); Menu->Add("Change device", 41, 70, 5); Menu->Add("Username", 41, 70, 6); Menu->Add("Colors", 41, 70, 7); Menu->Add("Terminal", 41, 70, 8); Menu->Add("Prefix", 41, 70, 9); Menu->Add("Suffix", 41, 70, 10); Menu->Add("Tag range", 41, 70, 11); Menu->Add("Tag all with password", 41, 70, 12); Menu->Add("Copy password", 41, 70, 13); Menu->Add("Clear costs", 41, 70, 14); Menu->Add("Clear time", 41, 70, 15); Menu->Add("Clear connects", 41, 70, 16); Menu->Show(); sprintf(Temp, "%04d-%04d", TermHeader.RangeStart, TermHeader.RangeStop); textAttr(PhoneScreen, Integers[cMenuBar]); mvwaddstr(PhoneScreen, 1, 61, Temp); textAttr(PhoneScreen, Integers[cMenuOptions]); OnlyTag = 0; mvwaddstr(PhoneScreen, 2, 67, "No"); wrefresh(PhoneScreen); Key = 0; nl(); while (Key != '\e') {  Key = getEscChar();  if (Key == '\n')    switch(Menu->Focus){    case 0:      Menu->Focus = 128;      Menu->Show();      textAttr(PhoneScreen, Integers[cEdit]);      sprintf(Temp, "%04d", TermHeader.RangeStart);      if (getstring(PhoneScreen, 1,61,Temp,NumberEdit,"\e\n",4,-1,Temp) == '\n')       if (i=atoi(Temp), i >= 1 && i <=TermHeader.Num) TermHeader.RangeStart = atoi(Temp);      sprintf(Temp, "%04d", TermHeader.RangeStop);      if (getstring(PhoneScreen, 1,66,Temp,NumberEdit,"\e\n",4,-1,Temp) == '\n')      if (i=atoi(Temp),i >=1 && i >= TermHeader.RangeStart && i <=TermHeader.Num)       TermHeader.RangeStop = i;      if (TermHeader.RangeStop > TermHeader.Num) TermHeader.RangeStop = TermHeader.Num;      Menu->Focus = 0;      Menu->Show();      break;    case 1:      OnlyTag = OnlyTag ^ 1;      break;    case 2:      x = ChooseBaud(PhoneScreen, 300);      j = ChooseBaud(PhoneScreen, 300);      if (ChooseYesno(PhoneScreen, "Do you want to change the baud?")){        Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;        for (i=1;i<TermHeader.RangeStart;i++)         Tmp = (tTermPhoneRec *)Tmp->Next;        for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){         if (OnlyTag)          if (Tmp->Baud == x && Tmp->Tag == 1) Tmp->Baud = j;         if (!OnlyTag)          if (Tmp->Baud == x) Tmp->Baud = j;         Tmp = (tTermPhoneRec *)Tmp->Next;        }      }      break;    case 3:      j = ChooseBaud(PhoneScreen, 300);      if (ChooseYesno(PhoneScreen, "Do you want to change the baud?")){        Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;        for (i=1;i<TermHeader.RangeStart;i++)         Tmp = (tTermPhoneRec *)Tmp->Next;        for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){         if (OnlyTag)          if (Tmp->Tag == 1) Tmp->Baud = j;         if (!OnlyTag) Tmp->Baud = j;         Tmp = (tTermPhoneRec *)Tmp->Next;        }      }      break;    case 4:      j = ChooseDevice(PhoneScreen, 0, 0);      if (ChooseYesno(PhoneScreen, "Do you want to change the device?")){        Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;        for (i=1;i<TermHeader.RangeStart;i++)         Tmp = (tTermPhoneRec *)Tmp->Next;        for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){         if (OnlyTag)          if (Tmp->Tag == 1) Tmp->Device = j;         if (!OnlyTag) Tmp->Device = j;         Tmp = (tTermPhoneRec *)Tmp->Next;        }      }      break;    case 5:      j = ChooseUser(PhoneScreen);      if (ChooseYesno(PhoneScreen, "Do you want to change the user?")){        Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;        for (i=1;i<TermHeader.RangeStart;i++)         Tmp = (tTermPhoneRec *)Tmp->Next;        for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){         if (OnlyTag)          if (Tmp->Tag == 1) Tmp->User = j;         if (!OnlyTag) Tmp->User = j;         Tmp = (tTermPhoneRec *)Tmp->Next;        }      }      break;    case 6:      j = ColorChoose(PhoneScreen, 0);      if (ChooseYesno(PhoneScreen, "Do you want to change the color?")){        Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;        for (i=1;i<TermHeader.RangeStart;i++)         Tmp = (tTermPhoneRec *)Tmp->Next;        for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){         if (OnlyTag)          if (Tmp->Tag == 1) Tmp->Color = j;         if (!OnlyTag) Tmp->Color = j;         Tmp = (tTermPhoneRec *)Tmp->Next;        }      }      break;    case 7:      j = ChooseTerminal(PhoneScreen, 0);      if (ChooseYesno(PhoneScreen, "Do you want to change the terminal?")){        Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;        for (i=1;i<TermHeader.RangeStart;i++)         Tmp = (tTermPhoneRec *)Tmp->Next;        for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){         if (OnlyTag)          if (Tmp->Tag == 1) Tmp->Terminal = j;         if (!OnlyTag) Tmp->Terminal = j;         Tmp = (tTermPhoneRec *)Tmp->Next;        }      }      break;    case 8:      j = ChoosePrefix(PhoneScreen, 0);      if (ChooseYesno(PhoneScreen, "Do you want to change the prefix?")){        Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;        for (i=1;i<TermHeader.RangeStart;i++)         Tmp = (tTermPhoneRec *)Tmp->Next;        for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){         if (OnlyTag)          if (Tmp->Tag == 1) Tmp->DialPrefix = j;         if (!OnlyTag) Tmp->DialPrefix = j;         Tmp = (tTermPhoneRec *)Tmp->Next;        }      }      break;    case 9:      j = ChooseSuffix(PhoneScreen, 0);      if (ChooseYesno(PhoneScreen, "Do you want to change the suffix?")){        Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;        for (i=1;i<TermHeader.RangeStart;i++)         Tmp = (tTermPhoneRec *)Tmp->Next;        for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){         if (OnlyTag)          if (Tmp->Tag == 1) Tmp->DialSuffix = j;         if (!OnlyTag) Tmp->DialSuffix = j;         Tmp = (tTermPhoneRec *)Tmp->Next;        }      }      break;    case 10:      Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;      for (i=1;i<TermHeader.RangeStart;i++)       Tmp = (tTermPhoneRec *)Tmp->Next;      for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){       Tmp->Tag = 1;       Tmp = (tTermPhoneRec *)Tmp->Next;      }      break;    case 11:      Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;      for (i=1;i<TermHeader.RangeStart;i++)       Tmp = (tTermPhoneRec *)Tmp->Next;      for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){       if (Tmp->Password[0] != 0) Tmp->Tag = 1;       Tmp = (tTermPhoneRec *)Tmp->Next;      }      break;    case 12:      Temp[0] = 0;      EnterPassword(Temp);      if (Temp[0] != 0){      Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;      for (i=1;i<TermHeader.RangeStart;i++)       Tmp = (tTermPhoneRec *)Tmp->Next;      for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){       if (OnlyTag && Tmp->Tag == 1) CharToPas(Tmp->Password, Temp);       if (!OnlyTag) CharToPas(Tmp->Password, Temp);       Tmp = (tTermPhoneRec *)Tmp->Next;      }      }      break;    case 13:      if (ChooseYesno(PhoneScreen, "Do you want to clear the costs?")){        Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;        for (i=1;i<TermHeader.RangeStart;i++)         Tmp = (tTermPhoneRec *)Tmp->Next;        for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){         if (OnlyTag)          if (Tmp->Tag == 1) {Tmp->Costs = 0; Tmp->LastCosts = 0;}         if (!OnlyTag) {Tmp->Costs = 0; Tmp->LastCosts = 0;}         Tmp = (tTermPhoneRec *)Tmp->Next;        }      }      break;    case 14:      if (ChooseYesno(PhoneScreen, "Do you want to clear the times?")){        Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;        for (i=1;i<TermHeader.RangeStart;i++)         Tmp = (tTermPhoneRec *)Tmp->Next;        for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){         if (OnlyTag)          if (Tmp->Tag == 1) {Tmp->Calcmin = 0; Tmp->SecUsed = 0;}         if (!OnlyTag) {Tmp->Calcmin = 0; Tmp->SecUsed = 0;}         Tmp = (tTermPhoneRec *)Tmp->Next;        }      }      break;    case 15:      if (ChooseYesno(PhoneScreen, "Do you want to clear the connects count?")){        Tmp = (tTermPhoneRec *)PhoneBook->Base->Next;        for (i=1;i<TermHeader.RangeStart;i++)         Tmp = (tTermPhoneRec *)Tmp->Next;        for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){         if (OnlyTag)          if (Tmp->Tag == 1) Tmp->Connects = 0;         if (!OnlyTag) Tmp->Connects = 0;         Tmp = (tTermPhoneRec *)Tmp->Next;        }      }      break;    default:break;  }  Menu->GetInput(Key);  if (Menu->Focus == 0){    textAttr(PhoneScreen, Integers[cMenuBar]);  }  else  {    textAttr(PhoneScreen, Integers[cMenuOptions]);  }  sprintf(Temp, "%04d-%04d", TermHeader.RangeStart, TermHeader.RangeStop);  mvwaddstr(PhoneScreen, 1, 61, Temp);  if (Menu->Focus == 1){    textAttr(PhoneScreen, Integers[cMenuBar]);  }  else  {    textAttr(PhoneScreen, Integers[cMenuOptions]);  }  if (!OnlyTag) mvwaddstr(PhoneScreen, 2, 67, "No ");  else mvwaddstr(PhoneScreen, 2, 67, "Yes");  wrefresh(PhoneScreen); }  delete Menu;  delete Win; ShowTermBook(1); nonl();}void Sort(){ int Key, i, Exit; char Temp[256]; tWindow *Win; tMenu *Menu; Win = new tWindow(PhoneScreen, 40, 0, 70, 10, Integers[cMenu] >> 4, Integers[cMenu] % 16); Win->Frame(1, Integers[cMenu]); Win->Headline("Sort phonebook", Integers[cMenuTitle]); Menu = new tMenu(PhoneScreen, Integers[cMenuText], Integers[cMenuHot], Integers[cMenuBar], Integers[cMenuText],             ALIGNLEFT); Menu->Add("Set range", 41, 70, 1); Menu->Add("Ascending names", 41, 70, 2); Menu->Add("Descending names", 41, 70, 3); Menu->Add("Ascending numbers", 41, 70, 4); Menu->Add("Descending numbers", 41, 70, 5); Menu->Add("Most connects", 41, 70, 6); Menu->Add("Last called", 41, 70, 7); Menu->Add("Comment 1", 41, 70, 8); Menu->Add("Comment 2", 41, 70, 9); Menu->Show(); sprintf(Temp, "%04d-%04d", TermHeader.RangeStart, TermHeader.RangeStop); textAttr(PhoneScreen, Integers[cMenuBar]); mvwaddstr(PhoneScreen, 1, 61, Temp); wrefresh(PhoneScreen); Key = 0; Exit = 0; nl(); while (Key != '\e' && !Exit) {  Key = getEscChar();  if (Key == '\n')    switch(Menu->Focus){    case 0:      Menu->Focus = 128;      Menu->Show();      textAttr(PhoneScreen, Integers[cEdit]);      sprintf(Temp, "%04d", TermHeader.RangeStart);      if (getstring(PhoneScreen, 1,61,Temp,NumberEdit,"\e\n",4,-1,Temp) == '\n')       if (i=atoi(Temp), i >= 1 && i <=TermHeader.Num) TermHeader.RangeStart = atoi(Temp);      sprintf(Temp, "%04d", TermHeader.RangeStop);      if (getstring(PhoneScreen, 1,66,Temp,NumberEdit,"\e\n",4,-1,Temp) == '\n')      if (i=atoi(Temp),i >=1 && i >= TermHeader.RangeStart && i <=TermHeader.Num)       TermHeader.RangeStop = i;      if (TermHeader.RangeStop > TermHeader.Num) TermHeader.RangeStop = TermHeader.Num;      Menu->Focus = 0;      Menu->Show();      break;    case 1:      SortAscending(TermHeader.RangeStart, TermHeader.RangeStop, NameCompare);      Exit = 1;      break;    case 2:      SortDescending(TermHeader.RangeStart, TermHeader.RangeStop, NameCompare);      Exit = 1;      break;    case 3:      SortAscending(TermHeader.RangeStart, TermHeader.RangeStop, NumberCompare);      Exit = 1;      break;    case 4:      SortDescending(TermHeader.RangeStart, TermHeader.RangeStop, NumberCompare);      Exit = 1;      break;    case 5:      SortDescending(TermHeader.RangeStart, TermHeader.RangeStop, ConnectsCompare);      Exit = 1;      break;    case 6:      break;    case 7:      SortAscending(TermHeader.RangeStart, TermHeader.RangeStop, Comment1Compare);      Exit = 1;      break;    case 8:      SortAscending(TermHeader.RangeStart, TermHeader.RangeStop, Comment2Compare);      Exit = 1;      break;    default:break;  }  Menu->GetInput(Key);  if (Menu->Focus == 0){    textAttr(PhoneScreen, Integers[cMenuBar]);  }  else  {    textAttr(PhoneScreen, Integers[cMenuOptions]);  }  sprintf(Temp, "%04d-%04d", TermHeader.RangeStart, TermHeader.RangeStop);  mvwaddstr(PhoneScreen, 1, 61, Temp);  wrefresh(PhoneScreen); } ShowTerm(); nonl();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -