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

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

热度:8   发布时间:2016-04-29 07:31:26.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(...)
{}
}

  相关解决方案