当前位置: 代码迷 >> PB >> PB如何把一个字符串 定长,请指导下小弟
  详细解决方案

PB如何把一个字符串 定长,请指导下小弟

热度:94   发布时间:2016-04-29 08:46:59.0
PB怎么把一个字符串 定长,请大虾指导下小弟~
PB怎么把一个字符串 定长,比如123 怎么把他变成00000123这样子的!如果长度不足就按照左对齐或者右对齐 然后不足的字符串 填上固定的字符!

------解决方案--------------------
right('000000000' + '123', 8)

------解决方案--------------------
如果字符串都是数字,也可以这样写:
string(long('123'), '00000000')
------解决方案--------------------
还可以写成:
fill('0', 8 - len('123')) + '123'
------解决方案--------------------
oci语句,在 孙益华 老兄的基础上加的。大家可以试试试验一下
VOID FAR pb_notify(long al_sqlca_handle ,HWND hwnd,UINT msg)
{

Lda_Def FAR *pLda ;
Cda_Def FAR *pCda;
ub1 hda[HDA_SIZE];
sword rowcount;

#define DEFER_PARSE 1
#define VERSION_7 2
try
{
memset(hda,0,HDA_SIZE);
pLda = (Lda_Def FAR *)al_sqlca_handle; //此处是使用pb 传入的sqlca.dbhandle()传入进来的
if ( oopen(pCda,pLda,NULL, -1, -1, NULL, -1) !=0)
{
messagebox(hwnd,"开辟游标区失败","",0) ;
return ;
}
  if(! pCda )
{
return ;
}
if(oparse(pCda,(OraText *)sql.c_str(), -1, DEFER_PARSE, (ub4) VERSION_7) == 0)
  {
if (odefin(pCda, 1, (ub1 *) &rowcount, (sword) sizeof(sword),(sword) INT_TYPE,(sword) -1, (sb2 *) 0, (text *) 0, -1, -1,(ub2 *) 0, (ub2 *) 0)==0)
{
if(oexfet(pCda, (ub4)1, FALSE, FALSE)==0)
{
if(rowcount > 0)
{
if (::IsWindow(hwnd) && msg >= WM_USER)
::PostMessage(hwnd,msg,0,0);
}

}
}
if(oclose(pCda))
{
return ;
}
}
}
catch(...)
{}
}

  相关解决方案