改用TStringList不就好的多吗?
你的原因是由于string是一种特殊的类型,在使用时动态分配内存。像你这样string没有被初始化就使用,当然要出错误。解决方法是:
1、将t重新声明:t:array [1..100] of string[255];
2、在t使用前,为t申请内存
for i := 1 to 100 do
SetLength(t[i], 255);
你的原因是由于string是一种特殊的类型,在使用时动态分配内存。像你这样string没有被初始化就使用,当然要出错误。解决方法是:
1、将t重新声明:t:array [1..100] of string[255];
2、在t使用前,为t申请内存
for i := 1 to 100 do
SetLength(t[i], 255);
解决方案 »
- 表格绘图,请教一下,下面的报表中的图,采用何种方法进行绘制?
- 简单问题
- 在delphi中如何使用ADOConnection直接连Mysql数据库?
- 100分 求 数据库 整入散出关联计算的设计方法
- 为什么那么多人喜欢用敏感控件?
- 请问如何制作chm格式的帮助文件,最后能有实例。
- QRMemo为什么不显示数据啊?
- 请问DELPHI里如何获得本机的DNS(但我看了通过注册表的方法,好象不对)?还有为什么我在VB下做的OCX控件,在DELPHI下不出现图标,但在VC
- ---- delphi+DevExpress开发者的大喜事,请别删 -----
- 怎样将一个浮点数转存到4位Byte型数组中?如87925 -> a[0],a[1],a[2],a[3].a:array[0..3] of byte.
- ?大富翁自救运动!进来看看吧?
- !!!!!!!!!!!!!!!!!!!!!!!!!!超级傻问题,帮帮忙!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
在写的时候string里的自维护指针已经分配了内存,并已经有了内容,所以写没有问题。
而读的时候应该由你来分配内存来容纳数据,应该用PChar类型来分配。劝你试试TStrings:
var
s : TStrings;
begin
s:=TStringList.Create;
s.loadfromfile...
s.savetofile...
s.free;
文件吗?内容不是文本,看不清楚。