//****** 定义部分代码
Type
TStreamStruct=record
Name:String;
FileStream:TFileStream;
IsSending:Boolean;
End; var
m_ArrFileStream:array of TStreamStruct;//****** 实现部分代码
procedure TMainForm.*****(fileList:TStringList); //fileList存储的是文件的绝对路径,如:“D:\Tencent\QQ.exe”
var i:Integer;
Begin
for i:=0 to fileList.Count-1 do
begin
System.SetLength(m_ArrFileStream,i+1);
m_ArrFileStream[i].Name:= ExtractFileName(fileList.Strings[i]); //问题出在这一句,如果改为i+1,则抛出异常
m_ArrFileStream[i+1].IsSending:=False;
m_ArrFileStream[i+1].FileStream:=TFileStream.Create(fileList.Strings[i],fmOpenRead);
end;
End;Why? Help!
Type
TStreamStruct=record
Name:String;
FileStream:TFileStream;
IsSending:Boolean;
End; var
m_ArrFileStream:array of TStreamStruct;//****** 实现部分代码
procedure TMainForm.*****(fileList:TStringList); //fileList存储的是文件的绝对路径,如:“D:\Tencent\QQ.exe”
var i:Integer;
Begin
for i:=0 to fileList.Count-1 do
begin
System.SetLength(m_ArrFileStream,i+1);
m_ArrFileStream[i].Name:= ExtractFileName(fileList.Strings[i]); //问题出在这一句,如果改为i+1,则抛出异常
m_ArrFileStream[i+1].IsSending:=False;
m_ArrFileStream[i+1].FileStream:=TFileStream.Create(fileList.Strings[i],fmOpenRead);
end;
End;Why? Help!
System.SetLength(m_ArrFileStream, fileList.Count);
for i:=0 to fileList.Count-1 do
begin
m_ArrFileStream[i].Name:= ExtractFileName(fileList.Strings[i]); //问题出在这一句,如果改为i+1,则抛出异常
m_ArrFileStream[i+1].IsSending:=False;
m_ArrFileStream[i+1].FileStream:=TFileStream.Create(fileList.Strings[i],fmOpenRead);
end;
End;
[i+1]已经越界
改为System.SetLength(m_ArrFileStream,i+2); System.SetLength(m_ArrFileStream,fileList.Count);
for i:=0 to fileList.Count-1 do
begin
m_ArrFileStream[i].Name:= ExtractFileName(fileList.Strings[i]);
m_ArrFileStream[i].IsSending:=False;
m_ArrFileStream[i].FileStream:=TFileStream.Create(fileList.Strings[i],fmOpenRead);
end;
End;
arrIn[0]:=10;
arrIn[1]:=10;
arrIn[2]:=10;都指定长度为1了,为何上面代码不会报错?
begin
System.SetLength(m_ArrFileStream,i+1);
m_ArrFileStream[i].Name:= ExtractFileName(fileList.Strings[i]);;
m_ArrFileStream[i].IsSending:=False;
m_ArrFileStream[i].FileStream:=TFileStream.Create(fileList.Strings[i],fmOpenRead);
end;结帖给分!