C++Builder 自编常用函数库(1)

这篇博客介绍了如何在C++Builder中编写和使用自定义函数库,包括MD5字符串处理、数据集操作以及数据导出到Excel的功能。提供了如OpenForm、md5ToString、DataSetToExcel等实用函数的实现,方便开发者在C++Builder项目中进行数据管理和文件交互。
摘要由CSDN通过智能技术生成


#ifndef DUJUNLITOOLSCPP
#define DUJUNLITOOLSCPP
//函数库2002-11-15 19:26
#include <vcl.h>
#include <grids.hpp>
#include <stdio.h>
#include <utilcls.h>
#include <printers.hpp>
#include <IdBaseComponent.hpp>
#include <IdCoder.hpp>
#include <IdCoderMessageDigest.hpp>
///md5
AnsiString __fastcall Strip(AnsiString S)
{
return S.Delete(1, 2);
}

AnsiString md5ToString(AnsiString S)
{
    AnsiString AHex;

    for (int i=1; i<=S.Length(); i++)
    {
     AHex += IntToHex((unsigned char)S[i], 2);// + " ";
    }

    return AHex;
}
String Md5Str(String src)
{
TIdCoderMD5 *md5=new TIdCoderMD5(NULL);
md5->Reset();
md5->AutoCompleteInput = true;
String tmp=md5ToString(Strip(md5->CodeString(src)));
delete md5;
md5=NULL;
return tmp;
}
//md5 end
bool OpenForm(TForm * WForm)
{

  //if(OpenForm(frmmem)==False)
  // {
  // frmmem=new Tfrmmem(Application);
  // OpenForm(frmmem);
  // }//使用例子
  int i;
  bool FormExist;

  if(WForm==NULL) return False;
  FormExist=False;
  for(i=0;i<Screen->FormCount;i++)
      if(Screen->Forms[i]->ClassType()==WForm->ClassType())
        {
          FormExist=True;
          break;
        }
  if(FormExist==False) return FormExist;

  if(WForm->WindowState==wsMinimized)
    ShowWindow(WForm->Handle,SW_SHOWNORMAL);
  else
    ShowWindow(WForm->Handle,SW_SHOWNA);
  if(!WForm->Visible) WForm->Visible=True;

  if(GetWindowLong(WForm->Handle,GWL_EXSTYLE&WS_EX_APPWINDOW)!=WS_EX_APPWINDOW)
     SetWindowLong(WForm->Handle,GWL_EXSTYLE,WS_EX_APPWINDOW);

  WForm->BringToFront();
  WForm->SetFocus();
  return True;
}
//----------------------------------------------------------------
String repl(String sstr,String fstr,String repstr)
{
//替换字符串函数
String tmpstr="";
int x = sstr.AnsiPos(fstr);
if(x==0)
   {
   tmpstr=sstr;
   //Application->MessageBoxA(sstr.c_str(),"",MB_OK); //未找到查找字串,原样返回
   return tmpstr;
   }
while(x != 0)
  {
  tmpstr +=sstr.SubString(1,x-1) + repstr;
  sstr = sstr.SubString(x+fstr.Length(),sstr.Length());
  x = sstr.AnsiPos(fstr);
  }
tmpstr+=sstr;
//Application->MessageBoxA(tmpstr.c_str(),"",MB_OK);
return tmpstr;
}
//---------------------------------------------
String sqlstr(String sqlstr)
{
//
if(sqlstr!="")
  {
  sqlstr=repl(sqlstr,"'","''");
  }
return sqlstr;
}
//---------------------------------

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值