Advertisement
niks32

skf_stud.cpp

Jan 23rd, 2023
953
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.17 KB | None | 0 0
  1. #include "fmbf.h"
  2.  
  3. static int KF_STUDENT_0(BTRVFILE *bf)
  4. {
  5.     STUDENT_KEYS *KB = (STUDENT_KEYS *)bf->KeyBuf;
  6.     STUDENT_KEYS *TV = (STUDENT_KEYS *)bf->KeyTopVal;
  7.     STUDENT_KEYS *BV = (STUDENT_KEYS *)bf->KeyBotVal;
  8.  
  9.     return !(
  10.         TV->_studentid.StudentID <= KB->_studentid.StudentID &&
  11.         KB->_studentid.StudentID <= BV->_studentid.StudentID);
  12. }
  13.  
  14. static int KF_STUDENT_1(BTRVFILE *bf)
  15. {
  16.     STUDENT_KEYS *KB = (STUDENT_KEYS *)bf->KeyBuf;
  17.     STUDENT_KEYS *TV = (STUDENT_KEYS *)bf->KeyTopVal;
  18.     STUDENT_KEYS *BV = (STUDENT_KEYS *)bf->KeyBotVal;
  19.  
  20.     return !(
  21.         strcmpR(TV->_lastname_firstname_secondname.LastName, KB->_lastname_firstname_secondname.LastName) <= 0 &&
  22.         strcmpR(TV->_lastname_firstname_secondname.LastName, KB->_lastname_firstname_secondname.LastName) <= 0  &&
  23.         strcmpR(TV->_lastname_firstname_secondname.FirstName, KB->_lastname_firstname_secondname.FirstName) <= 0 &&
  24.         strcmpR(TV->_lastname_firstname_secondname.FirstName, KB->_lastname_firstname_secondname.FirstName) <= 0  &&
  25.         strcmpR(TV->_lastname_firstname_secondname.SecondName, KB->_lastname_firstname_secondname.SecondName) <= 0 &&
  26.         strcmpR(TV->_lastname_firstname_secondname.SecondName, KB->_lastname_firstname_secondname.SecondName) <= 0 );
  27. }
  28.  
  29. void SKF_STUDENT(int32 StudentID)
  30. {
  31.     STUDENT_KEYS *TV = (STUDENT_KEYS *)FileSTUDENT->KeyTopVal;
  32.     STUDENT_KEYS *BV = (STUDENT_KEYS *)FileSTUDENT->KeyBotVal;
  33.  
  34.     FileSTUDENT->KeyNum = STUDENT_STUDENTID;
  35.     FileSTUDENT->KeyFltr = KF_STUDENT_0;
  36.  
  37.     if (StudentID != 0)
  38.     {
  39.         TV->_studentid.StudentID = StudentID;
  40.         BV->_studentid.StudentID = StudentID;
  41.     }
  42.     else
  43.     {
  44.         TV->_studentid.StudentID = DB_INT32_MIN;
  45.         BV->_studentid.StudentID = DB_INT32_MAX;
  46.     }
  47. }
  48.  
  49. void SKF_STUDENT_LASTNAMEFIRSTNAMESECONDNAME(char *LastName, char *FirstName, char *SecondName)
  50. {
  51.     STUDENT_KEYS *TV = (STUDENT_KEYS *)FileSTUDENT->KeyTopVal;
  52.     STUDENT_KEYS *BV = (STUDENT_KEYS *)FileSTUDENT->KeyBotVal;
  53.  
  54.     FileSTUDENT->KeyNum = STUDENT_LASTNAME_FIRSTNAME_SECONDNAME;
  55.     FileSTUDENT->KeyFltr = KF_STUDENT_1;
  56.  
  57.     if (LastName)
  58.     {
  59.         strcpy(TV->_lastname_firstname_secondname.LastName, LastName);
  60.         strcpy(BV->_lastname_firstname_secondname.LastName, LastName);
  61.     }
  62.     else
  63.     {
  64.         memset(TV->_lastname_firstname_secondname.LastName, DB_UINT8_ZERO, sizeof(TV->_lastname_firstname_secondname.LastName));
  65.         memset(BV->_lastname_firstname_secondname.LastName, DB_UINT8_MAX, sizeof(BV->_lastname_firstname_secondname.LastName));
  66.         TV->_lastname_firstname_secondname.LastName[sizeof(TV->_lastname_firstname_secondname.LastName) - 1] = '\0';
  67.         BV->_lastname_firstname_secondname.LastName[sizeof(BV->_lastname_firstname_secondname.LastName) - 1] = '\0';
  68.     }
  69.  
  70.     if (FirstName)
  71.     {
  72.         strcpy(TV->_lastname_firstname_secondname.FirstName, FirstName);
  73.         strcpy(BV->_lastname_firstname_secondname.FirstName, FirstName);
  74.     }
  75.     else
  76.     {
  77.         memset(TV->_lastname_firstname_secondname.FirstName, DB_UINT8_ZERO, sizeof(TV->_lastname_firstname_secondname.FirstName));
  78.         memset(BV->_lastname_firstname_secondname.FirstName, DB_UINT8_MAX, sizeof(BV->_lastname_firstname_secondname.FirstName));
  79.         TV->_lastname_firstname_secondname.FirstName[sizeof(TV->_lastname_firstname_secondname.FirstName) - 1] = '\0';
  80.         BV->_lastname_firstname_secondname.FirstName[sizeof(BV->_lastname_firstname_secondname.FirstName) - 1] = '\0';
  81.     }
  82.  
  83.     if (SecondName)
  84.     {
  85.         strcpy(TV->_lastname_firstname_secondname.SecondName, SecondName);
  86.         strcpy(BV->_lastname_firstname_secondname.SecondName, SecondName);
  87.     }
  88.     else
  89.     {
  90.         memset(TV->_lastname_firstname_secondname.SecondName, DB_UINT8_ZERO, sizeof(TV->_lastname_firstname_secondname.SecondName));
  91.         memset(BV->_lastname_firstname_secondname.SecondName, DB_UINT8_MAX, sizeof(BV->_lastname_firstname_secondname.SecondName));
  92.         TV->_lastname_firstname_secondname.SecondName[sizeof(TV->_lastname_firstname_secondname.SecondName) - 1] = '\0';
  93.         BV->_lastname_firstname_secondname.SecondName[sizeof(BV->_lastname_firstname_secondname.SecondName) - 1] = '\0';
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement