string型字符串是不是有长度的限制?(20分)

  • 主题发起人 主题发起人 esgeht
  • 开始时间 开始时间
E

esgeht

Unregistered / Unconfirmed
GUEST, unregistred user!
我从数据库中查询得出一个长5760的text
我将这个text赋值给一个string型的字符串变量
结果这个变量的长度不到5760
大概只有1000左右
请问是怎么回事?
如果string不行,我该用那种类型的字串?
 
WideString试试。
 
string默认就是WideString类型的
 
to zqw0117
widestring没有用,一样的,好像都只能达到长度1000
to wjiachun
我试了一下,您说得很对
 
Type Maximum length Memory required Used for
ShortString 255 characters 2 to 256 bytes backward compatibility
AnsiString ~2^31 characters 4 bytes to 2GB 8-bit (ANSI) characters
WideString ~2^30 characters 4 bytes to 2GB Unicode characters

multiuser servers and multi-language applications
 
不是阿,string上万个字节都能放下的
 
不同意,
string默认就是AnsiString 类型的

The reserved word string functions like a generic type identifier. For example,
var S: string;
creates a variable S that holds a string. In the default {$H+} state,
the compiler interprets string (when it appears without a bracketed number
after it) as AnsiString.
 
用指针行不行?
PCHAR
 
str:string;
你用setlength(str,10000) 试试
 
理论上讲单纯字符串儿的长度string是无限的.试做了一个小的测试程序没有发现问题.
在memo中输入10000个字,把其text属性值赋给自定义的一个string变量,显示二者长度是
相同的.可以再试试看程序别的地方有没有什么问题.
又还可以试的变量类型就剩下olevariant了.
 
>>来自:wjiachun, 时间:2002-3-29 16:44:00, ID:1010776 | 编辑
>>string默认就是WideString类型的

抱歉,误导您了 :)
String是Pascal使用的字符串格式.它分为ShortString,
WideString和AnsiString,String缺省为AnsiString.
ShortString的最大长度为255个字符.
AnsiString 的最大长度为2^31个字符.
WideString 的最大长度为2^30个字符.
AnsiString和WideString的区别在于字符集的不同.
AnsiString对应于AnsiChar,WideString对应于WideChar.


 
我在ms Sql server 7.0上试了,没有所说的问题啊。
delphi的手册上描述string是一个泛型,当{$H+}时编译为ansiString,这个开关是缺省的,
{$H-}时编译为shortString;
你说长度是1000,那字符是被编译为ansiString了。
不是字符类型的长度造成的,看看其他的地方有没有错误吧。
 
多人接受答案了。
 
后退
顶部