无法在Delphi中设置TStringLists数组
发布时间:2020-12-15 04:18:16 所属栏目:大数据 来源:网络整理
导读:Var i : Integer; j : Integer; oSLArray : array of TStringList; oSL : TStringList;begin SetLength(oSLArray,emailPassword.Lines.Count); for i := 0 to emailPassword.Lines.Count - 1 do {oSLArray[i] := TStringList.Create; oSLArray[i].Delimiter
Var i : Integer; j : Integer; oSLArray : array of TStringList; oSL : TStringList; begin SetLength(oSLArray,emailPassword.Lines.Count); for i := 0 to emailPassword.Lines.Count - 1 do {oSLArray[i] := TStringList.Create; oSLArray[i].Delimiter := ' '; oSLArray[i].DelimitedText := emailPassword.Lines[i]; for j := 0 to oSLArray[i].Count-1 do begin Showmessage( oSLArray[i].Strings[j] ); end; } oSL := TStringList.Create; oSL.Delimiter := ' '; oSL.DelimitedText := emailPassword.Lines[i]; for j := 0 to oSL.Count-1 do begin Showmessage( oSL[j] ); end; end; 我正在尝试创建一个TStringLists数组,读取来自RichEdit’EmailPassword’的内容,然后打印它(当我到达目的地时,我会把它放在一个数组中). 当我取消注释oSLarray时,我收到了访问冲突. 现在,我理解访问冲突意味着指针可能没有正确设置,因为我认为访问冲突发生在oSLArray [i]:= TStringList.Create. 我只是错过了一些小事吗? 解决方法
我已经纠正了代码,我相信这段代码会起作用,但我只是在脑海中测试过.
var i : Integer; j : Integer; oSLArray : array of TStringList; oSL : TStringList; begin if not(Assigned(emailpassword)) then exit; SetLength(oSLArray,emailPassword.Lines.Count); for i := 0 to emailPassword.Lines.Count - 1 do begin oSLArray[i] := TStringList.Create; oSLArray[i].Delimiter := ' '; oSLArray[i].DelimitedText := emailPassword.Lines[i]; for j := 0 to oSLArray[i].Count-1 do begin Showmessage( oSLArray[i].Strings[j] ); <<--- The error has here end; {for j} end; {for i} //oSL := TStringList.Create; //try // oSL.Delimiter := ' '; // oSL.DelimitedText := emailPassword.Lines[i]; // for j := 0 to oSL.Count-1 do begin // Showmessage( oSL[j] ); // end; {for j} //finally // oSL.Free; //end; {try} //end; {for i} end; 这是你的旧代码和评论: for i := 0 to emailPassword.Lines.Count - 1 do //don't forget begin oSLArray[i] := TStringList.Create; oSLArray[i].Delimiter := ' '; oSLArray[i].DelimitedText := emailPassword.Lines[i]; //<<<-- Here for i loop should end,but it does not. for j := 0 to oSLArray[i].Count-1 do begin //You loop though all members of OSLArtray,even though only the first item is set,//the rest is unassigned. Showmessage( oSLArray[i].Strings[j] ); <<-- Access Violation end; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |