能否让一个类型文件的中的字符串字段的长度大于255长度限制(50分)

  • 主题发起人 主题发起人 CashChin
  • 开始时间 开始时间
C

CashChin

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在想建立一个类型文件,但因为类型文件中的字段是定长的,但我又要一个长度大于255
的字符串字段进行存取,问有否方法

请各位大虾帮忙
 
用SETLENGTH函数试试.
 
delphi的String类型是可以长于255的。
 
但是我在String[300]或SetLength(300)时都出错
 
好象是不行的,
不过你可以定义一个PChar呀,这是一个指针,4个字节
你使用时,要多少个字符,就开批相应的空间
如果定义成String,默认开辟4个,呵呵,空间开辟好了,旧不能该了
好象是,用PChar应该每问题
 
ansistring

或者{$H+}
 
这种情况最好用流
 
好像用PCHAR是不行的,不能将内容写入文件中,而且怎么读出来还是一个问题
 
type
TMyRec=record
Chars:array[0..1023] of Char;
end;
 
有什么问题,吧代吗贴出来阿
 
若用Char数组是可以扩大存取长度,但是在读取时或是修改时该如何做?
 
用char数组,如果我想:
var
nTemp : array [0..300] of char ;
nStr : String ;
begin
nStr := 'fdsfsfs';
nTemp := nStr ;
end;
这样会出错,怎样解决?
 
这是你的用法不对!

procedure TForm1.Button2Click(Sender: TObject);
var
nTemp : array [0..300] of char ;
nStr : String ;
I:INTEGER;
begin
nTEMP := 'fdsfsfs';
for i:=1 to length(nstr) do nTemp[i-1]:=nStr;
showmessage(nTemp);
end;
 
能否给出String 与 array [0..300] of char 互换的例子
 
a: array[0..300] of char;
s: String;
//array->string
SetLength(s,301);
move(a[0],s[1],301);
//string->array
move(s[1],a[0],Length(s));
 
AnsiString 长度没有限制.
ShortString 长度为255内

若定义为string则默认为是AnsiString;
不过可以用编译开关{$H-}/{$H+}来设置是默认为ShortString/AnsiString
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
D
回复
0
查看
945
DelphiTeacher的专栏
D
后退
顶部