回车符的ASCII 是多少?
在这个帖子里http://www.csdn.net/expert/topic/307/307022.shtm 我提了自动折行的问题,照NetColorWolf(NCW)所说 的函数f_cr(bz, long(describe('compute_bz.width')))(考虑一大段文字没有空格情况下),而实际情况是又有空格又有回车符。我改了一点,就是非到指定的长度,忽略空格,但我不知道回车的 ASCII,所以……,望告之,多谢!
********************************8
对于没有加空格或者回车的列:可以这样处理
在SQL中选中该列,在DW painter中将该列(比如叫bz)删除,加入一计算列(比如叫compute_bz)代替原来的列,此计算列的表达式为:
f_cr(bz, long(describe('compute_bz.width')))
然后设置此计算列的Autosize Height为true(也就是取消此复选框),设置DW的detail带Autosize Height为true
然后,就没有了。对了,这儿是我写的函数(必须是全局的)string f_cr(string as_text, integer ai_w)
代码参考如下:
///////////////////////////////////
//为报表中汉字自动换行提供回车
///////////////////////////////////
long i, j, ll_count, ll_len, ll_pos
string ls_ret, ls_line
ll_pos = 1
//取一行所能容纳的字符数(宋体,9号)
ll_len = ai_w / 30 //(我是宋体,12号,取值40)
//估算需要的行数
ll_count = len(as_text) / ll_len + 1
for i = 1 to ll_count
//得到一行的字符
ls_line = mid(as_text, ll_pos, ll_len)
//返回一行中倒序非汉字的位置或者空格的位置,回车???
for j = ll_len to 1 step -1
if asc(mid(ls_line, j, 1)) < 128 or asc(mid(ls_line, j, 1))=3 &
then exit
next
//如果为半个汉字,就加一个字符
if mod(ll_len - j, 2) = 0 then
ls_ret += mid(as_text, ll_pos, ll_len) + '~r'
ll_pos += ll_len
else
ls_ret += mid(as_text, ll_pos, ll_len + 1) + '~r'
ll_pos += ll_len + 1
end if
next
return ls_ret
还有个问题,即使设置了计算列的Autosize Height为true,还是要手工设置多长才是多长。
********************************8
对于没有加空格或者回车的列:可以这样处理
在SQL中选中该列,在DW painter中将该列(比如叫bz)删除,加入一计算列(比如叫compute_bz)代替原来的列,此计算列的表达式为:
f_cr(bz, long(describe('compute_bz.width')))
然后设置此计算列的Autosize Height为true(也就是取消此复选框),设置DW的detail带Autosize Height为true
然后,就没有了。对了,这儿是我写的函数(必须是全局的)string f_cr(string as_text, integer ai_w)
代码参考如下:
///////////////////////////////////
//为报表中汉字自动换行提供回车
///////////////////////////////////
long i, j, ll_count, ll_len, ll_pos
string ls_ret, ls_line
ll_pos = 1
//取一行所能容纳的字符数(宋体,9号)
ll_len = ai_w / 30 //(我是宋体,12号,取值40)
//估算需要的行数
ll_count = len(as_text) / ll_len + 1
for i = 1 to ll_count
//得到一行的字符
ls_line = mid(as_text, ll_pos, ll_len)
//返回一行中倒序非汉字的位置或者空格的位置,回车???
for j = ll_len to 1 step -1
if asc(mid(ls_line, j, 1)) < 128 or asc(mid(ls_line, j, 1))=3 &
then exit
next
//如果为半个汉字,就加一个字符
if mod(ll_len - j, 2) = 0 then
ls_ret += mid(as_text, ll_pos, ll_len) + '~r'
ll_pos += ll_len
else
ls_ret += mid(as_text, ll_pos, ll_len + 1) + '~r'
ll_pos += ll_len + 1
end if
next
return ls_ret
还有个问题,即使设置了计算列的Autosize Height为true,还是要手工设置多长才是多长。
...全文
相关推荐
C语言概念题解答选编
问题6:在用一个字节存储一个字符的系统中,’\n’在内存占用的字节数是多少?
去除回车符 去除文本文件回车符工具 v1.0
回车符(CR),在ASCII码中表示为0x0D,是文本编辑中的一个重要字符,通常与换行符(LF,0x0A)组合使用,形成我们常见的“回车+换行”来完成一行文字的结束并开始新的一行。
怎样在DOS下用br批量替换文本文档中的回车符
"批量替换文本文档中的回车符以适应DOS环境并转换为CHM文件"在DOS环境下,处理文本文档时可能会遇到因回车符导致的显示问题,尤其是在将TXT文件转换为CHM(HTML帮助)文件时。CHM文件
ASCII码对照全表.pdf
ASCII码表中的特殊符号:在ASCII码表中,除了可打印字符和控制字符外,还有一些特别的符号,如换行符LF(***)、回车符CR(***)、水平制表符HT(***)等。
STM32ASCII码表和转义字符
理解ASCII码表和转义字符对于编写嵌入式程序,比如STM32应用,是至关重要的。例如,当你需要在串口通信中发送特定的控制字符,如换行符或者回车符,你可能需要使用它们的ASCII码值或者转义字符形式。


