为什么在类中不能给类的变量赋值?

netyou 2006-10-03 02:06:10
//下面是我写的一个读mp3的id3v1信息的代码,但是我在ReadFromFile函数中把TagData结构中Title的值赋给m_Title出错:m_Title:=TrimRight(TagData.Title),这是为什么?希望高手指教,详细代码如下:
unit id3v1;

interface
uses
Classes, SysUtils;
type
TagRecord=record
Header: array [1..3] of Char;
Title: array [1..30] of Char;
Artist: array [1..30] of Char;
Album: array [1..30] of Char;
Year: array [1..4] of Char;
Comment: array [1..30] of Char;
Genre: Byte;
end;
TID3v1=class(TObject)
public
m_Title: String[30];
m_Artist: String[30];
m_Album: String[30];
m_Year: String[4];
m_Comment: String[28];
m_Track: Byte;
m_GenreID: Byte;
function ReadFromFile(FileName:String):boolean;
end;
implementation

function ReadTag(FileName:String;Var TagData:TagRecord):boolean;
var
F:file;
begin
try
AssignFile(F, FileName);
FileMode:=0;
Reset(F,1);
Seek(F,FileSize(F)-128);
BlockRead(F,TagData,128);
CloseFile(F);
result:=true;
except
result:=false;
end;
end;

function TID3v1.ReadFromFile(FileName:String):boolean;
var
TagData:TagRecord;
begin
result:=ReadTag(FileName,TagData) and (TagData.Header='TAG');
if result then
begin
//就是这里:把TagData结构中Title的值赋给m_Title出错:m_Title:=TrimRight(TagData.Title),这是为什么?
m_Title:=TrimRight(TagData.Title); //<=运行时候这个地方提示访问地址出错
end
else
result:=false;
end;

end.
...全文
367 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
netyou 2006-10-05
  • 打赏
  • 举报
回复
呵呵,答案找到了,原来是自己没有申请对象
surefire 2006-10-04
  • 打赏
  • 举报
回复
会不会是数组地址越界啊?

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧