у меня такая же проблема, надо считать из файла двумерный массив в stringgrid, но фишка в том что у меня он считывается, прогу мне писал знакомый, сам я плохо разбираюсь, текст вот:
Код:
procedure TFormMain.ButCalcClick(Sender: TObject);
var
S:Real;
F:TextFile;
A:array of array of Real;
N,M,I,J:Integer;
begin
AssignFile(F,OpenDialog1.FileName);
Reset(F);
ReadLn(F,N,M);
Massiv.RowCount:=N+1;
Massiv.ColCount:=M+1;
SetLength(A,Massiv.RowCount,Massiv.ColCount);
for I:=0 to Massiv.RowCount-1 do
Massiv.Cells[I,0]:=IntToStr(I);
for J:=0 to Massiv.ColCount-1 do
Massiv.Cells[0,J]:=IntToStr(J);
for I:=1 to Massiv.RowCount-1 do
begin
for J:=1 to Massiv.ColCount-1 do
Read(F,A[I,J]);
ReadLn(F)
end;
for I:=1 to Massiv.RowCount-1 do
for J:=1 to Massiv.ColCount-1 do
Massiv.Cells[I,J]:=FloatToStr(A[I,J]);
S:=0;
for I:=1 to Massiv.RowCount-1 do
for J:=1 to Massiv.ColCount-1 do
if RdGrCh.ItemIndex=0 then
if (I+J) mod 2=0 then
S:=S+A[I,J]
else
if RdGrCh.ItemIndex=1 then
if (I+J) mod 2<>0 then
S:=S+A[I,J];
EdRes.Text:=FloatToStr(S);
ButCalc.Enabled:=false;
showMessage('Результат: '+FloatToStr(S));
end;
procedure TFormMain.ButCloseClick(Sender: TObject);
begin
close;
end;
procedure TFormMain.ButLoadClick(Sender: TObject);
begin
if OpenDialog1.Execute then
butCalc.Enabled:=true
else
begin
LabTrack.Caption:='Файл не выбран'
end;
end;
procedure TFormMain.RdGrChClick(Sender: TObject);
begin
butLoad.Enabled:=true;
end;
end.
но преподу не нравится говорит типа зачем "надо сначала выбрать элементы, а потом загружать массив, по-моему это 2 независымие операции, исправляй"
+еще с процедуркой ButLoadClick фигня, получается что эта кнопка становится доступной только когда выполняется openDialog а в программе производится 2 разных суммы, и получается что если ты сперва находишь первую сумму и загружаешь массив из файла, а потом хочешь найти вторую сумму то приходится загружать массив повторно, это тоже надо исправить