为什么在类中不能给类的变量赋值?
//下面是我写的一个读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.