Автор: Rudolf 2.05.2006 14:06
Помогите реализовать ввод матриц(2x3) в файл матриц.Я делаю через memo.Начинаю с 1ой строки.Хочу чтобы шла матрица затем пустая строка затем снова матрица и т.д.
Выдает ошибку..
Код
procedure TForm1.Button1Click(Sender: TObject);
var i,j,n,str,k:integer;
s:string;
begin
AssignFile(f,'c:\f.matr');
rewrite(f);
n:=-3;
str:=memo1.Lines.Count;
For k:=1 to str-1 do begin
inc(n,3);
for i:=1 to 2 do begin
s:=memo1.Lines[i+n];
for j:=1 to 3 do
matriza[i,j]:=strtoint(s[j]);
write(f,matriza);
end;
end;
closeFile(f);
end;
Автор: volvo 2.05.2006 14:22
Форум - для программистов, а не для телепатов. Где именно, и какую ошибку выдает?
Или ты думаешь, я должен догадаться, ГДЕ и КАК у тебя описаны недостающие переменные?
Как данные в memo вносишь, опять же?
Автор: Rudolf 2.05.2006 14:33
Ошибку выдает напротив "matriza[i,j]:=strtoint(s[j]);" вида
Project xxxx raised exception class yyyyy with message 'zzzzzz'.
Process stopped. Use Step or Run to continue.
Переменные все описаны.Все работает для одной матрицы:
Код
procedure TForm1.Button1Click(Sender: TObject);
var i,j,n,str,k:integer;
s:string;
begin
AssignFile(f,'c:\f.matr');
rewrite(f);
for i:=1 to 2 do begin
s:=memo1.Lines[i];
for j:=1 to 3 do
matriza[i,j]:=strtoint(s[j]);
write(f,matriza);
end;
closeFile(f);
end;
А мне надо сразу все ввести и считать.
Автор: volvo 2.05.2006 14:41
Ну, раз не хочешь, чтоб тебе помогли, ищи ошибку сам... Тебя же спрашивают, КАК и ГДЕ описаны? Для того, чтобы проверить твою программу, надо ее ЗАПУСТИТЬ, тебе не кажется??? А как я буду запускать ТВОЮ программу, если не знаю, как ТЫ описал переменные? Я сделаю по-своему, ошибки не будет, и я тебе напишу: "Все работает", и закрою тему. Устраивает?
Автор: Rudolf 2.05.2006 14:47
Вот вся прога
Код
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Menus, Buttons;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
MainMenu1: TMainMenu;
N1: TMenuItem;
PreobrF: TMenuItem;
ReadF: TMenuItem;
CreatF: TMenuItem;
ProsmotrG: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Type matr=array[1..2,1..3] of real;
var
matriza:matr;
f,g:file of matr;
max:real;
n:integer;
procedure TForm1.Button1Click(Sender: TObject);
var i,j,n,str,k:integer;
s:string;
begin
AssignFile(f,'c:\f.matr');
rewrite(f);
n:=-3;
str:=memo1.Lines.Count;
For k:=1 to str-1 do begin
inc(n,3);
label1.Caption:=inttostr(n);
for i:=1 to 2 do begin
s:=memo1.Lines[i+n];
for j:=1 to 3 do
matriza[i,j]:=strtoint(s[j]);
write(f,matriza);
end;
end;
closeFile(f);
end;
end.