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

📄 main.cpp

📁 得到汉字拼音首字母,简单例程 得到汉字拼音首字母,简单例程
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Main.h"
#include <assert.h>     //BCB自带的汉字库
#include <ctype.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmMain *frmMain;
bool bStop;
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
//-------------------------------------------功能:检测Value 是否在Lp..Hp之间
bool __fastcall TfrmMain::In(int Lp, int Hp,int Value)
{
   assert(Lp<=Hp);
   return((Value<=Hp)&&(Value>=Lp));
}
//---------------------------------------------------------------------------
char __fastcall TfrmMain::GetPYChar(AnsiString HZ)
{
   assert(HZ.Length()==2);
   WORD Hi=WORD(HZ[1])<<8;
   WORD Lo=BYTE(HZ[2]);
   int n=Hi+Lo;
   if (In(0xB0A1,0xB0C4,n)) return 'A';
   if (In(0XB0C5,0XB2C0,n)) return 'B';
   if (In(0xB2C1,0xB4ED,n)) return 'C';
   if (In(0xB4EE,0xB6E9,n)) return 'D';
   if (In(0xB6EA,0xB7A1,n)) return 'E';
   if (In(0xB7A2,0xB8c0,n)) return 'F';
   if (In(0xB8C1,0xB9FD,n)) return 'G';
   if (In(0xB9FE,0xBBF6,n)) return 'H';
   if (In(0xBBF7,0xBFA5,n)) return 'J';
   if (In(0xBFA6,0xC0AB,n)) return 'K';
   if (In(0xC0AC,0xC2E7,n)) return 'L';
   if (In(0xC2E8,0xC4C2,n)) return 'M';
   if (In(0xC4C3,0xC5B5,n)) return 'N';
   if (In(0xC5B6,0xC5BD,n)) return 'O';
   if (In(0xC5BE,0xC6D9,n)) return 'P';
   if (In(0xC6DA,0xC8BA,n)) return 'Q';
   if (In(0xC8BB,0xC8F5,n)) return 'R';
   if (In(0xC8F6,0xCBF0,n)) return 'S';
   if (In(0xCBFA,0xCDD9,n)) return 'T';
   if (In(0xCDDA,0xCEF3,n)) return 'W';
   if (In(0xCEF4,0xD188,n)) return 'X';
   if (In(0xD1B9,0xD4D0,n)) return 'Y';
   if (In(0xD4D1,0xD7F9,n)) return 'Z';
   return char(0);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmMain::GetPYString(AnsiString HZString)
{
   AnsiString sTemp, sReturn;
   AnsiString s = HZString.Trim();
   for (int i=1; i <= s.Length(); i++)
   {
      if (isprint(s[i]))
      {
         sReturn = sReturn + s[i];
      }
      else
      {
         sTemp += s[i];
         if (sTemp.Length() == 2)
         {
            sReturn = sReturn +GetPYChar(sTemp);
            sTemp = "";
         }
      }
   }
   return sReturn;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::Button3Click(TObject *Sender)
{
/*  if (SaveFiles->Execute())
  {
    bStop=false;
    AnsiString iFileName = SaveFiles->FileName;
    Application->ProcessMessages();
    Variant ExcelApp,Workbook1,Sheet1;
    try
    {
      ExcelApp=Variant::CreateObject("Excel.Application");
      AnsiString xFileName = DM_Data->sGrdPath+"GRD\\Excel.xls";
      ExcelApp.PG("WorkBooks").PR("Open",xFileName.c_str());
      Workbook1=ExcelApp.PG("ActiveWorkBook");                             //创建工作薄对象
      Sheet1=Workbook1.PG("ActiveSheet");                                 //创建工作表对象

      PL->Visible = true;
      Screen->Cursor = crHourGlass;
      BB_OutExc->Enabled = false;
      LB->Caption = "请稍候,正在导出至文件.....";
      PB->Max =  DM_Data->Qry_fwzt_data->RecordCount;
      int rowcount = DM_Data->Qry_fwzt_data->RecordCount;
      Sheet1.PG("Cells",1,1).PS("Value","序号");
      Sheet1.PG("Cells",1,2).PS("Value","区划编码");
      Sheet1.PG("Cells",1,3).PS("Value","数据来源");
      Sheet1.PG("Cells",1,4).PS("Value","用户姓名");
      Sheet1.PG("Cells",1,5).PS("Value","手机号码");
      Sheet1.PG("Cells",1,6).PS("Value","上网日期");
      Sheet1.PG("Cells",1,7).PS("Value","服务类别");
      Sheet1.PG("Cells",1,8).PS("Value","服务状态");
      Sheet1.PG("Cells",1,9).PS("Value","优惠套餐");
      Sheet1.PG("Cells",1,10).PS("Value","受理方案");
      Sheet1.PG("Cells",1,11).PS("Value","停机日期");
      DM_Data->Qry_fwzt_data->First();
      for (int i=2; i<rowcount+2; i++)
      {
        if (bStop)
            break;
        Sheet1.PG("Cells",i,1).PS("Value",IntToStr(i-1).c_str());
        Sheet1.PG("Cells",i,2).PS("Value",DM_Data->Qry_fwzt_data->FieldByName("DISTRICT_ID")->AsString.c_str());
        Sheet1.PG("Cells",i,3).PS("Value",DM_Data->Qry_fwzt_data->FieldByName("SOURCE_ID")->AsString.c_str());
        Sheet1.PG("Cells",i,4).PS("Value",DM_Data->Qry_fwzt_data->FieldByName("First_name")->AsString.c_str());
        Sheet1.PG("Cells",i,5).PS("Value",DM_Data->Qry_fwzt_data->FieldByName("SERVICE_ID")->AsString.c_str());
        Sheet1.PG("Cells",i,6).PS("Value",FormatDateTime("YYYY-MM-DD",DM_Data->Qry_fwzt_data->FieldByName("SERVICE_START_DATE")->AsDateTime).c_str());
        Sheet1.PG("Cells",i,7).PS("Value",DM_Data->Qry_fwzt_data->FieldByName("SERVICE_KIND")->AsString.c_str());
        Sheet1.PG("Cells",i,8).PS("Value",DM_Data->Qry_fwzt_data->FieldByName("SERVING_STATUS")->AsString.c_str());
        Sheet1.PG("Cells",i,9).PS("Value",DM_Data->Qry_fwzt_data->FieldByName("SERVICE_FAVOUR_ID")->AsString.c_str());
        Sheet1.PG("Cells",i,10).PS("Value",DM_Data->Qry_fwzt_data->FieldByName("BUS_FAVOUR_ID")->AsString.c_str());
        Sheet1.PG("Cells",i,11).PS("Value",DM_Data->Qry_fwzt_data->FieldByName("SERVICE_STOP_DATE")->AsString.c_str());
        DM_Data->Qry_fwzt_data->Next();
        PB->Position = i+1;
        Application->ProcessMessages();
      }
      Workbook1.FN("SaveAs",iFileName.c_str());
      Workbook1.PR("Close");
      ExcelApp.FN("Quit");
      ExcelApp = Unassigned;
      AnsiString msg = "导出成功!\n共导出"+IntToStr(rowcount)+"条信息。";
      MessageBox(this->Handle, msg.c_str(), "提示!", MB_OK);
      PB->Position = 0;
    }
    catch(...)
    {
      AnsiString msg = "导出失败!\n请重新导出。";
      MessageBox(this->Handle, msg.c_str(), "错误!", MB_OK);
      Workbook1.PR("Close");
      ExcelApp.FN("Quit");
      ExcelApp = Unassigned;
      PB->Position = 0;
    }
  }
  PL->Visible = false;
  Screen->Cursor = crDefault;
  */      
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::BB_StartClick(TObject *Sender)
{
Edit2->Text = GetPYString(Edit1->Text);
/*   if (OpenFile->Execute())
   {
     bStop=false;
     E_path->Text = OpenFile->FileName;
     AnsiString iFileName = E_path->Text;
     PL->Visible = true;
     LB->Caption = "正在转换中,请稍候.........";
     Screen->Cursor = crHourGlass;
     BB_Start->Enabled = false;
     Application->ProcessMessages();
     Variant ExcelApp,Workbook1,Sheet1;
     int ExcRow=0;
     try
     {
        // 打开文件
        ExcelApp = Variant::CreateObject("Excel.Application");                 //创建应用
        ExcelApp.PG("WorkBooks").PR("Open",iFileName.c_str());                //打开工作薄
        Workbook1=ExcelApp.PG("ActiveWorkBook");                             //创建工作薄对象
        Sheet1=Workbook1.PG("ActiveSheet");                                 //创建工作表对象
        int SheetCount = Sheet1.PG("UsedRange").PG("Rows").PG("Count");     //获取当前工作表中有多少行。
        // 读取文件数据
        PB->Max = SheetCount;
        for (int i=1;i<=SheetCount+1;i++)
        {
          if (bStop)
             break;
          ExcRow=i;
          String phone = Sheet1.PG("Cells",i,2).PG("Value");        //读取取值语句
          Trim(phone);
          if (phone == "")
          {
            continue;
          }
          else
          {
              String zhphone = GetPYChar(phone);
          }//if
        }//for
     }
     catch(...)
     {
        AnsiString msg = "导入失败!\n请检查你的Excel文件(第" + IntToStr(ExcRow) + "行)。";
        MessageBox(this->Handle, msg.c_str(), "错误!", MB_OK);
        Workbook1.PR("Close");
        ExcelApp.FN("Quit");
        ExcelApp = Unassigned;
     }
     Workbook1.PR("Close");
     ExcelApp.FN("Quit");
     ExcelApp = Unassigned;
   }   */
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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