0 / 0 / 0
Регистрация: 12.03.2015
Сообщений: 21
1

Сохранение и загрузка Массива, stringgrid в файл + Переменную

28.02.2016, 13:49. Показов 2236. Ответов 5
Метки нет (Все метки)

Delphi
1
2
 
Matrix :array[1..100, 1..100] of integer;
сохранение в текстовый файл.
Stringgrid и массив сохраняется
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm4.N11Click(Sender: TObject);// Cохранение в файл
var t:TextFile; i,j:integer;
begin
 AssignFile(t,'1.txt');
       Rewrite(t);
    for i := 0 to Vershinauzl do
        for j := 0 to Vershinauzl do
        begin
        Writeln(t,StringGrid1.Cells[i, j]);
          end;
Writeln(t);
          begin
          for i :=1 to 100 do
       for j := 1 to 100 do
         Writeln(t,Matrix[i, j] );
          end;
 
    CloseFile(t);
end;
Нужно еще Сохранить переменную Vershinuzl.
Не знаю как загрузить этот файл.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2016, 13:49
Ответы с готовыми решениями:

Сохранение из StringGrid в файл и загрузка из файла
Есть таблица с 5 столбцами и 0 строками.Данные заполняются в режиме редактирования...

StringGrid сохранение и загрузка
Мне нужно сохранять и загружать таблицу. количество строк и столбцов можеть изменяться. Сделать...

Сохранение и загрузка таблицы (StringGrid)
Мне задали задание сохранить, сохранить как и открыть stringgrid. С диалогами умею делать ток memo....

Сохранение содержимого StringGrid и загрузка из него
Хочю сказать спасибо всем кто помог зделать прошлую Лабу по масивам ! Теперь последния по записям...

5
0 / 0 / 0
Регистрация: 12.03.2015
Сообщений: 21
02.03.2016, 16:18  [ТС] 2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
procedure TForm4.N11Click(Sender: TObject);
var t:TextFile; i,j:integer;
begin
 AssignFile(t,'1.txt');
       Rewrite(t);
       with StringGrid1 do
  begin
    for i := 0 to RowCount - 1  do
    begin
        for j := 0 to ColCount - 1 do
        Write(t,StringGrid1.Cells[i, j],'');
          Writeln(t);//íîâàÿ ñòðîêà â ôàéëå
    end;
  end;
Writeln(t);
          begin
          for i :=1 to Vershinauzl do
       for j := 1 to Vershinauzl do
         Writeln(t,Matrix[i, j] );
          end;
         begin
          for i :=1 to Vershinauzl do
          Write(t,MAS_N[i],';'  );   // номер вершин
          Writeln(t,'');
          end;
          begin
          for i :=1 to Vershinauzl do
          Write(t,MAS_X[i],';'  );    // Координаты вершин по  X
          Writeln(t,'');
          end;
          begin
          for i :=1 to Vershinauzl do
          Write(t,MAS_Y[i],';' );    // Координаты вершин по y
          Writeln(t,'');
 
         end;
    CloseFile(t);
end;
В общем Сохранение я сделал, теперь нужно сделать загрузку с файла только вот здесь я не знаю как делать.
0
0 / 0 / 0
Регистрация: 12.03.2015
Сообщений: 21
06.03.2016, 13:16  [ТС] 3
Вот изменил Код для сохранения
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
procedure TForm4.N11Click(Sender: TObject);
var t:TextFile; i,j:integer;
begin
 AssignFile(t,'1.txt');
       Rewrite(t);
     { with StringGrid1 do
  begin
    for i := 0 to RowCount - 1  do
    begin
        for j := 0 to ColCount - 1 do
        Write(t,StringGrid1.Cells[i, j]);
          Writeln(t);//íîâàÿ ñòðîêà â ôàéëå
    end;
  end;
Writeln(t); }
          begin
          for i :=1 to Vershinauzl do
          begin
       for j := 1 to Vershinauzl do
         Writeln(t,Matrix[i, j],' ' );
         Writeln(t,'') ;
          end;
          Writeln(t,'|');
          end;
         {begin
          for i :=1 to Vershinauzl do
          Write(t,MAS_N[i],';'  );   // Íîìåð Âåðøèí
          Writeln(t,'');
          end;
          begin
          for i :=1 to Vershinauzl do
          Write(t,MAS_X[i],';'  );    // Êîîðäèíàòû âåðøèí ïî X
          Writeln(t,'');
          end;
          begin
          for i :=1 to Vershinauzl do
          Write(t,MAS_Y[i],';' );    // Êîîðäèíàòû âåðøèí ïî Y
          Writeln(t,''); 
 
         end; }
    CloseFile(t);
end;
Вот код для загрузки но он пока загружает только стринггрид
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TForm4.N21Click(Sender: TObject);
var
i,j,n,m:Integer;
t:TextFile;
s:string;
begin
AssignFile(t,'1.txt');
    Reset(t);
    i := 0;
    write(t,s='|');
  while not Eof(t) do begin
    j := 0;
    while not Eoln(t) do begin
      Readln(t, m1[i, j]);
      StringGrid1.Cells[i+1, j+1]:=inttostr(M1[i,j]) ;
      //Matrix[j,i]:=M1[i,j];
      Inc(j);
    end;
    ReadLn(t);
    Inc(i);
  end;
  CloseFile(t);
 
  end;
Нужно сделать цикл загрузки этого стринггрида до этого символа в файле '|' и чтобы программа начала загружать массив. Как это сделать я не знаю.
0
841 / 736 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
06.03.2016, 20:52 4
Цитата Сообщение от DJAMEL Посмотреть сообщение
Нужно сделать цикл загрузки этого стринггрида до этого символа в файле '|'
Зачем он те нужен?
Простая загрузка в стрингрид: http://stringgrid-delphi.ru/save-table.php
0
0 / 0 / 0
Регистрация: 12.03.2015
Сообщений: 21
07.03.2016, 08:32  [ТС] 5
У меня помимо этого стринггрида еще 4 массива в одном файле, которые также нужно загрузить
0
500 / 356 / 231
Регистрация: 29.03.2015
Сообщений: 675
07.03.2016, 12:33 6
Лучший ответ Сообщение было отмечено DJAMEL как решение

Решение

Загрузка массивов и stringgrid осуществляется procedure TForm1.Button2Click(Sender: TObject);.
Код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
unit MainU;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
vershinauzl:integer;
Matrix:array[1..100, 1..100] of integer;
mas_n,mas_x,mas_y:array[1..100] of integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,n,m:integer;
begin
try
n:=strtoint(edit1.Text);
except
showmessage('Число столбцов должно быть целым числом!');
exit;
end;
if n<1 then
begin
showmessage('Число столбцов должно быть больше 0!');
exit;
end;
try
m:=strtoint(edit2.Text);
except
showmessage('Число строк должно быть целым числом!');
exit;
end;
if m<1 then
begin
showmessage('Число строк должно быть больше 0!');
exit;
end;
with stringgrid1 do
begin
ColCount:=n;
rowcount:=m;
for i:=0 to n-1 do
for j:=0 to m-1 do
cells[i,j]:=inttostr(random(100)-50);
end;
for i:=1 to vershinauzl do
begin
for j:=1 to vershinauzl do
matrix[i,j]:=random(100)-50;
mas_n[i]:=random(100)-50;
mas_x[i]:=random(100)-50;
mas_y[i]:=random(100)-50;
end;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
vershinauzl:=50;
Button1Click(Sender);
end;
 
//Чтение данных из файла.
procedure TForm1.Button2Click(Sender: TObject);
var
i,j,n,m:integer;
s:string;
f:textfile;
begin
opendialog1.InitialDir:=getcurrentdir;
if opendialog1.Execute then
begin
assignfile(f,opendialog1.FileName);
reset(f);
readln(f,n);
readln(f,m);
edit1.Text:=inttostr(n);
edit2.Text:=inttostr(m);
with stringgrid1 do
begin
colcount:=n;
rowcount:=m;
for i:=0 to n-1 do
for j:=0 to m-1 do
begin
readln(f,s);
cells[i,j]:=s;
end;
end;
readln(f,vershinauzl);
for i:=1 to vershinauzl do
for j:=1 to vershinauzl do
readln(f,matrix[i,j]);
for i:=1 to vershinauzl do
readln(f,mas_n[i]);
for i:=1 to vershinauzl do
readln(f,mas_x[i]);
for i:=1 to vershinauzl do
readln(f,mas_y[i]);
closefile(f);
end;
end;
 
//Запись данных в файл.
procedure TForm1.Button3Click(Sender: TObject);
var
i,j,n,m:integer;
f:textfile;
begin
savedialog1.InitialDir:=getcurrentdir;
if savedialog1.Execute then
begin
assignfile(f,savedialog1.FileName);
rewrite(f);
with stringgrid1 do
begin
n:=colcount;
m:=rowcount;
writeln(f,n);
writeln(f,m);
for i:=0 to n-1 do
for j:=0 to m-1 do
writeln(f,cells[i,j]);
end;
writeln(f,vershinauzl);
for i:=1 to vershinauzl do
for j:=1 to vershinauzl do
writeln(f,matrix[i,j]);
for i:=1 to vershinauzl do
writeln(f,mas_n[i]);
for i:=1 to vershinauzl do
writeln(f,mas_x[i]);
for i:=1 to vershinauzl do
writeln(f,mas_y[i]);
closefile(f);
end;
end;
 
procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;
 
end.
Прилагаю проект на Delphi.
Вложения
Тип файла: zip Store.zip (247.8 Кб, 8 просмотров)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2016, 12:33
Помогаю со студенческими работами здесь

Сохранение данных из StringGrid'a и загрузка в него
Нужно реализовать сохранение и загрузку данных из StringGrid'a в текстовый файл(блокнот) с помощью...

Сохранение StringGrid в файл
Необходимо сохранить данные из StringGrid в файл - каждая ячейка - с новой строки. 1) - Ключ...

Сохранение данных StringGrid в файл
Уважаемые программисты, помогите новичку. У меня в программеесть stringgrid. Я пытался разобраться...

Сохранение StringGrid в файл .dat
Тема, как бы элементарная, но сам в шоке был, когда понял что не могу задать имя сохраняемого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru