社区
C++ Builder
帖子详情
AnsiString是否有长度的限制?
sdyqingdao
2004-05-05 11:08:28
我的一段代码,莫名其妙的出现问题。由于这一段是重复执行的,只有一种情况出问题,这种情况唯一特别的地方是字多,约300个汉字,没有特殊字符。代码中使用了AnsiString.c_str()。
...全文
315
14
打赏
收藏
AnsiString是否有长度的限制?
我的一段代码,莫名其妙的出现问题。由于这一段是重复执行的,只有一种情况出问题,这种情况唯一特别的地方是字多,约300个汉字,没有特殊字符。代码中使用了AnsiString.c_str()。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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;
}
Delphi 的字符及字符串.doc
2. **Short
String
**: 保留此类型是为了向后兼容 Delphi 1.0,
限制
长度
为 255 个字符。它是静态分配的,不支持动态增长,但节省内存。 3. **Wide
String
**: 类似于
Ansi
String
,但由 WideChar 构成,适用于需要处理 ...
delphi写dll注意事项
- 当使用 `Short
String
` 时,需要特别注意字符串
长度
限制
,避免出现截断等问题。 #### 3. 函数返回值与参数类型 在DLL函数的设计上,需要注意返回值类型以及参数类型的选择。不同类型的数据在跨模块调用时可能会...
易语言字符串结构
易语言中的字符串有以下几个特点: 1. **动态
长度
**:易语言字符串的
长度
可以在运行时动态改变,这意味着你可以通过添加或删除字符来调整字符串的
长度
。 2. **字符串操作函数**:易语言提供了一系列内建的字符串...
Delphi和C++数据类型对照表
- `
String
[n]`是老式的Delphi字符串,
限制
长度
为1到255个字节,用模板类`Small
String
<n>`表示。 - `Short
String
`也是Delphi的老式字符串,固定
长度
为255个字节,C++没有直接对应的类型。 - 最新的`
String
`在...
2015常州市信息与未来小学生夏令营选拔试题
- 若输入的字符串
长度
超过255,应使用`
ansi
string
`类型。 ### 四、输出格式规范 **1. 输出格式要求** - 行首和行尾不得有多余空格。 - 不得多余的空行。 - 相邻输出项间严格使用一个空格分隔。 - 行末不得有多余...
C++ Builder
13,870
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章