社区
C++ Builder
帖子详情
AnsiString是否有长度的限制?
sdyqingdao
2004-05-05 11:08:28
我的一段代码,莫名其妙的出现问题。由于这一段是重复执行的,只有一种情况出问题,这种情况唯一特别的地方是字多,约300个汉字,没有特殊字符。代码中使用了AnsiString.c_str()。
...全文
347
14
打赏
收藏
AnsiString是否有长度的限制?
我的一段代码,莫名其妙的出现问题。由于这一段是重复执行的,只有一种情况出问题,这种情况唯一特别的地方是字多,约300个汉字,没有特殊字符。代码中使用了AnsiString.c_str()。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
robbyzi
2004-05-11
打赏
举报
回复
用WideString不行吗??试试
agtian
2004-05-11
打赏
举报
回复
如果不行,请和我联系
agtian
2004-05-11
打赏
举报
回复
为什么非得用.c_str,好的方法多呢,char * buf[1024],然后sprintf(buf,“%s”,MyString);
不是很好吗?
czliuxi
2004-05-11
打赏
举报
回复
不知道你代码怎么样子,如果你要用substring的话,需要判断当前的substring的截断处是不是汉字的双字的头码,不是可以截断,是的话截断处要加一或退一,这样可以解决乱码问题, 这个是我写过的代码,其中的函数ByteType就是判断是不是头码的,再不清楚可以在bc的帮助中查看关于bytetype函数的说明 其返回数值1为是双字节的头码,2为尾码,0为其为单字
if(Value.Length()>=26)
{TMbcsByteType efg=ByteType(Value,26);
if( efg==1)
QRLabel41->Caption=Value=Value.SubString(1,27)+' '+Value.SubString(28,Value.Length()) ;
else QRLabel41->Caption=Value=Value.SubString(1,26)+' '+Value.SubString(27,Value.Length()) ;
}
sdyqingdao
2004-05-11
打赏
举报
回复
我日!
JackLucifer
2004-05-11
打赏
举报
回复
ByteType是BCB的函数,还是C/C++中就有的?
sdyqingdao
2004-05-08
打赏
举报
回复
up
xiaoshi0
2004-05-08
打赏
举报
回复
长度2G
sdyqingdao
2004-05-08
打赏
举报
回复
很急啊,没人回答吗
叶子哟
2004-05-05
打赏
举报
回复
char *你分配内存了吗把详细代码贴出来
sdyqingdao
2004-05-05
打赏
举报
回复
问题出在AnsiString.c_str(),我用代码试过了,好像char*最多只能255。
我实在这样解决的,用AnsiString.SubString()分解为多个子字符串,但问题又出来了!!
出现乱码,就是大家经常遇到的中文的问题!不知道怎么解决呢?
耙子
2004-05-05
打赏
举报
回复
AnsiString 的理论长度限制是2G字节,足够了吧?
贴出你的代码。
ch_builder
2004-05-05
打赏
举报
回复
他的长度应该足够我们用了,用不着关心这个:)
sdyqingdao
2004-05-05
打赏
举报
回复
matq2008(叶子.net) , pazee(耙子)(灵感点亮生活) 你们好!
代码分为两部分,函数ReplaceText是发这个帖子以前的样子,程序中它被多次调用,只有下面这次替换有问题。
1:
TempString = qr->FieldByName("WGH")->AsString;
ReplaceText("#HazardGoodNO#",TempString, WordRange);
2:函数ReplaceText部分:
bool TMainForm::ReplaceText(AnsiString FindTexts, AnsiString ReplaceTexts, Variant WrdRang)
{
TVariant RepPara=wdReplaceAll;
TVariant EmptyPara=EmptyParam;
WrdRang.OlePropertyGet("Find").OlePropertySet("Text",FindTexts.c_str());
WrdRang.OlePropertyGet("Find").OlePropertyGet("Replacement").OlePropertySet("Text",ReplaceTexts.c_str());
WrdRang.OlePropertyGet("Find").OlePropertySet("Forward", true);
WrdRang.OlePropertyGet("Find").OlePropertyGet("Replacement").OleFunction("ClearFormatting");
WrdRang.OlePropertyGet("Find").OleFunction("Execute",&EmptyPara,&EmptyPara,&EmptyPara,&EmptyPara,&EmptyPara,&EmptyPara,&EmptyPara,&EmptyPara,&EmptyPara,&EmptyPara,&RepPara,&EmptyPara,&EmptyPara,&EmptyPara,&EmptyPara);
return true;
}
Ansi
String
Ansi
String
类是BCB中最常见类之一,了解它对以后深入学习BCB大有帮助。 介绍
Ansi
String
类之前,先要介绍一些背景知识。VCL(Visual Component Library 可视化组件库)大量利用Pascal长字串数据类型,几乎所有基于文本的VCL属性都采用Pascal长字串。例如,Text、Name和Caption属性都是Pascal长字串属性。VC...
delphi中
Ansi
String
、Wide
String
区别
字符串是代表一组字符的变量类型。其中Short
String
长度
最大为255个字符
Ansi
String
字符串是delphi中默认的字符串类型,由
Ansi
Char字符组成,不
限制
长度
,并兼容Null结尾的字符串 Wide
String
除了有WideChar字符组成之外,其余功能和
Ansi
String
一样; pchar是NUll结尾的字符串指针与C里面的char*,lpstr类型一样 p
ansi
...
BCB中
Ansi
String
类方法总结
Ansi
String
类是BCB中最常见类之一,了解它对以后深入学习BCB大有帮助原来关于这个类的提出的问题有很多,现总结如下。加上我个人的经验,凑出了一篇关于这个类的最常用方法属性的介绍,希望能对各位有所帮助 常用方法: 1. char* c_str() 返回一个字符串指针,他指向的内容和
Ansi
String
中包含的字符串的内容一致(BCB帮助中就是是这样解释这个方法的,关于它更
Ansi
String
类
Ansi
String
类是BCB中最常见类之一,了解它对以后深入学习BCB大有帮助。 介绍
Ansi
String
类之前,先要介绍一些背景知识。VCL(Visual Component Library 可视化组件库)大量利用Pascal长字串数据类型,几乎所有基于文本的VCL属性都采用Pascal长字串。例如,Text、Name和Caption属性都是Pascal长字串属性。VCL的许多构件方法和事件
java如何传参数delphi
ansi
string
_delphi的
string
和
ansi
string
区分
字符串是代表一组字符的变量类型,每一种语言都有自己的字符串类型的存储和使用方法。Pascal类型有下列几种不同的字符串类型来满足程序的要求:
Ansi
String
这是Pascal缺省的字符串类型,它由
Ansi
Char 字符组成,其
长度
没有
限制
,同时与null结束的字符串相兼容。Short
String
保留该类型是为了向后兼容Delphi1.0,它的
长度
限制
在255个字符内。WideSt...
C++ Builder
13,872
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章