有一段漢字和英文字的混合Widestring,我現在想將它打印出來.要求自動換行,每一行長度一樣.我的方法:
如果定議每行為20個字符,有時就有如下的現像:x代表字母,"漢"代表漢字xxxxxxxxxxxxxxxxxxxx
漢漢漢漢漢漢漢漢漢漢xxxxxxxxxx
漢漢漢xxx漢漢漢xxx漢漢漢xxx漢漢
漢漢漢漢漢漢漢漢漢漢漢漢漢漢漢漢漢漢漢漢這樣就顯得對不齊,
請問各位,有什麼方法讓這段文字換行,又像NotePad一樣對齊?
如果定議每行為20個字符,有時就有如下的現像:x代表字母,"漢"代表漢字xxxxxxxxxxxxxxxxxxxx
漢漢漢漢漢漢漢漢漢漢xxxxxxxxxx
漢漢漢xxx漢漢漢xxx漢漢漢xxx漢漢
漢漢漢漢漢漢漢漢漢漢漢漢漢漢漢漢漢漢漢漢這樣就顯得對不齊,
請問各位,有什麼方法讓這段文字換行,又像NotePad一樣對齊?
解决方案 »
- delphi POST网页的时候提示“invalid argument to date encode”错误!
- delphi double 的数值 变成5.5518684497e+250 在线
- 关于adoquery的问题
- Delphi 6.0到那里可以下载啊Delphi 6.0到那里可以下载啊Delphi 6.0到那里可以下载啊
- 如何关闭MDIFORM中的所有子窗口(MDICHILD)?
- 如何去掉DBNavigator的删除提示?
- @@@@时间加减的简单问题,在线等待@@@@
- 想从一个ADODataSet中将记录添加到另一个ADODataSet中?
- 帮我看看,为什么只有一个FieldByName能用???急啊,真是怪了!!!
- 能在Access中动态创建表吗
- delphi中Tchart怎样在Excel中打开
- dataset中的记录问题?
IF (ord(str[1])>160) then //未汉字
else //不是汉字
由于delphi中widestring类型把一个汉字看成一个字符,所以用widestring来判断字符数是不正确的,应该把你的字符串转换成string类型来判断字符串长度,但是这样一来,string类型的字符串又不能正确获取汉字,怎样解决呢?请看:var
nRowWidth, vLen: Integer;
aNR, TempNR: WideString;
vStr: string;
//每一行可以填写多少个字符(注意:此值是string类型长度,就是说一行可以放多少个英文字母)。nRowWidth := 80;
vLen := length(TempNR);
aNR:='';
while length(aNR) < vLen do
begin
vStr := vStr + LeftStr(TempNR, 1);//存放每行字符串
aNR := aNR + LeftStr(TempNR, 1);//做为判断循环结束的字符串
TempNR := RightStr(TempNR, length(TempNR) - 1);//前面每取出一个字(包括汉字或者英文字母),字符串就要减去一个字。
if length(vStr) >= nRowWidth then
begin
//在这里写换行或对齐语句
end;
end;上面的语句你仔细研究一下,应该对你有所帮助。