关于cbuilder中控件memo的问题

来源:百度知道 编辑:UC知道 时间:2024/06/28 03:34:54
如何在控件memo中实现如下功能:
计算出行中最大的字符数 并按照此行进行右对齐

比如在memo中输入
34
1231
1234567890
3255

那么1234567890为最长数据则所有数据都应该与1234567890右对齐
输出为以下形式:(*号为空格,)
********34
******1231
1234567890
******3255

//求最大长度
int maxline=0; //max长度
for(int i1 =0;i1 <(index_end+1-StrToInt(ncount)) ; i1++)
{
if(MemoMain->Lines->Strings[i1].Length() > maxline)
{
maxline=MemoMain->Lines->Strings[i1].Length();
}
}

for(int i2 =0;i2<(index_end+1-StrToInt(ncount)); i2++)
{
if( MemoMain->Lines->Strings[i2].Length() < maxline)
{
//此处必须从最末到0
for(int k =maxline-(MemoMain->Lines->Strings[i2].Length());k >0 ;k--)
MemoMain->Lines->Strings[i2]=" "+MemoMain->Lines->Strings[i2];
}
}

int bit(int x)
{
int sum=0;
if (x==0) return 1;
while(x)
{
sum++;
x=x/10;
}
return sum;
}

这是知道一个数有几位的函数,接着遍历一次,找出最大的位为max;

void addspace(int x)
{
for(int i=1;i<=x;i++) cout<<' ';
}