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

📄 gsm_phone.cpp

📁 free sources for gsm
💻 CPP
字号:
//---------------------------------------------------------------------------


#pragma hdrstop

#include <stdio>
#include <IniFiles.hpp>
#include "gsm_phone.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)


// class

CGsmPhone::CGsmPhone() {
}

CGsmPhone::~CGsmPhone() {
}


// parsers

BOOL CGsmPhone::ArrComp(unsigned char *Src, int SrcSize, unsigned char *Pattern, int PattSize, int *Position) {
// is Pattern contained in Src?

   int i, p_n=0;

   for (i=0; i<SrcSize; i++) {
      if (Src[i]==Pattern[p_n])
         p_n++;
      else
         p_n=0;

      if (p_n==PattSize) {
         *Position=i;
         return true;
      }
   }

   *Position=0;
   return false;
}

int CGsmPhone::CalcImeiChk(unsigned char *Imei) {
   int i, Sum=0, Table[]={0, 2, 4, 6, 8, 1, 3, 5, 7, 9};

   for (i=0; i<14; i+=2) {
      Sum+=Imei[i]-0x30;
      Sum+=Table[Imei[i+1]-0x30];
   }

   return (Sum%10==0) ? 0 : 10-(Sum%10);
}

DWORD CGsmPhone::DwordReverse(DWORD Original) {
   unsigned char Tmp[4], Res[4];

   memcpy(Tmp, &Original, 4);

   Res[0]=Tmp[3];
   Res[1]=Tmp[2];
   Res[2]=Tmp[1];
   Res[3]=Tmp[0];

   return *((DWORD *)Res);
}


// operators

void CGsmPhone::MccMncToOperator(char *IniFileName, char *ProviderCode, char *Provider) {
   int i;
   TIniFile *Ini;

   strcpy(Provider, "Unknown");

   if (FileExists(IniFileName)) {
      Ini=new TIniFile(IniFileName);

      if (Ini->ValueExists("MCC_MNC", ProviderCode))
         strcpy(Provider, Ini->ReadString("MCC_MNC", ProviderCode, "").c_str());

      delete Ini;
   }
}

void CGsmPhone::EnumOperators(char *IniFileName, TStrings *Destiny) {
   TIniFile *Ini;
   TStrings *Sections;
   int i;

   if (FileExists(IniFileName)) {
      Destiny->Clear();

      Ini=new TIniFile(IniFileName);

      // load all sections
      Sections=new TStringList;
      Ini->ReadSection("MCC_MNC", Sections);

      for (i=0; i<Sections->Count; i++)
         Destiny->Add(Ini->ReadString("MCC_MNC", Sections->Strings[i], ""));

      delete Sections;

      delete Ini;
   }
}

void CGsmPhone::OperatorToMccMnc(char *IniFileName, char *ProviderCode, char *Provider) {
   TIniFile *Ini;
   TStrings *Sections;
   int i;

   if (FileExists(IniFileName)) {
      Ini=new TIniFile(IniFileName);

      // load all sections
      Sections=new TStringList;
      Ini->ReadSection("MCC_MNC", Sections);

      for (i=0; i<Sections->Count; i++)
         if (strcmp(Ini->ReadString("MCC_MNC", Sections->Strings[i], "").c_str(), Provider)==0)
            strcpy(ProviderCode, Sections->Strings[i].c_str());

      delete Sections;

      delete Ini;
   }
}

⌨️ 快捷键说明

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