![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Access violation at address ....
Wolfezz © (2002-04-27 17:49:00)Почему в этом коде вознгикает такая ошибка?
procedure TForm1.BitBtn2Click(Sender: TObject);
var a,b:tstrings; i:integer;
begin
if r2.Checked=true then begin
for i:=0 to (memo1.lines.count div 2)-1 do
a.Add(memo1.Lines[i]);
for i:=(memo1.lines.count div 2)-1 to memo1.lines.count do
b.Add(memo1.Lines[i]);
a.SaveToFile(form2.edit1.text);
b.SaveToFile(form2.edit2.text);
a.clear;
b.clear;
end; end;
Wolfezz (2002-04-27 18:59:00) [1]Большое спасибо!
А не подскажите ли еще, как ускорить этот процесс, а то на моем компе файл в сорок тысяч строк обрабатывается довольно таки долго...
Ally (2002-04-27 18:41:00) [2]Ну, например, вот как:
procedure TForm1.BitBtn2Click(Sender: TObject);
var
a,b: TStringList;
I:integer;
begin
a := TStringList.Create;
try
b := TStringList.Create;
try
if r2.Checked=true then
begin
for i:=0 to (memo1.lines.count div 2)-1 do
a.Add(memo1.Lines[i]);
for i:=(memo1.lines.count div 2)-1 to memo1.lines.count - 1 do
b.Add(memo1.Lines[i]);
a.SaveToFile(form2.edit1.text);
b.SaveToFile(form2.edit2.text);
a.clear;
b.clear;
finally
b.Free;
end;
finally
a.Free;
end;
end;
end;
Удачи.
Wolfezz (2002-04-27 18:30:00) [3]А как тогда поступать в моем случае?? (Я думаю задача из данного кода вполне ясна)
Anatoly Podgoretsky (2002-04-27 18:20:00) [4]Нет создания объектов, кроме того tstrings не предназначен для хранения данных, это базовый класс.
Wolfezz (2002-04-27 18:02:00) [5]Да, не заметил ошибки, но она в данном случае не играет роли. В моем случае выделяется сначала строка
a.Add(memo1.Lines[i]);
olookin (2002-04-27 17:51:00) [6]Вместо
for i:=(memo1.lines.count div 2)-1 to memo1.lines.count do
b.Add(memo1.Lines[i]);
нужно писать
for i:=(memo1.lines.count div 2)-1 to memo1.lines.count-1 do
b.Add(memo1.Lines[i]);