IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Типизированные файлы, Файл матриц
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 51
Пол: Мужской
Реальное имя: Владимир

Репутация: -  0  +


Помогите реализовать ввод матриц(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;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Форум - для программистов, а не для телепатов. Где именно, и какую ошибку выдает?

Или ты думаешь, я должен догадаться, ГДЕ и КАК у тебя описаны недостающие переменные?

Как данные в memo вносишь, опять же?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 51
Пол: Мужской
Реальное имя: Владимир

Репутация: -  0  +


Ошибку выдает напротив "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;


А мне надо сразу все ввести и считать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ну, раз не хочешь, чтоб тебе помогли, ищи ошибку сам... Тебя же спрашивают, КАК и ГДЕ описаны? Для того, чтобы проверить твою программу, надо ее ЗАПУСТИТЬ, тебе не кажется??? А как я буду запускать ТВОЮ программу, если не знаю, как ТЫ описал переменные? Я сделаю по-своему, ошибки не будет, и я тебе напишу: "Все работает", и закрою тему. Устраивает?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 51
Пол: Мужской
Реальное имя: Владимир

Репутация: -  0  +


Вот вся прога
Код


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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 29.06.2017 10:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"