Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Mr_Bula
0 / 0 / 4
Регистрация: 29.04.2013
Сообщений: 99
#1

Сохранение таблицы в двоичный файл - Delphi

30.10.2014, 06:18. Просмотров 1014. Ответов 21
Метки нет (Все метки)

Здравствуйте, подскажите пожалуйста, как реализовать следующую задачу. На форме есть таблица, в ней 4 столбца и несколько строк, пользователь вводит в таблицу данные(фамилия, имя, группа, оценка). После нажатия на кнопку, программа должна создать двоичный файл и записать туда введенные данные. А после считать от туда строки с указанной группой и оценкой. Представления не имею что из себя представляет двоичный файл
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2014, 06:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сохранение таблицы в двоичный файл (Delphi):

Сохранение таблицы в текстовый файл
Здравствуйте. Необходимо записать данные из stringgrid в текстовый файл, но в...

Вывод результата программы в текстовый файл и в двоичный файл с именем, задаваемым пользователем
Подскажите пожалуйста, что нужно исправить. Нужно организовать вывод результата...

Пытаюсь перевести файл в двоичный код
Пожалуйста кто может помогите... Ситуация такая нужно открыть файл в двоичном...

Сохранение таблицы с параметрами
Доброго времени суток. Имеется таблица Stringgrid которая сохраняется в файл...

Сохранение таблицы html в word
Добрый вечер! Такой вопрос. Программа, несколько дочерних окон отображают...

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

21
Puporev
Модератор
54148 / 41781 / 28887
Регистрация: 18.05.2008
Сообщений: 98,330
30.10.2014, 07:13 #2
Цитата Сообщение от Mr_Bula Посмотреть сообщение
что из себя представляет двоичный файл
Типизированный файл, в данном случае файл записей.
Delphi
1
2
3
4
5
6
7
type stud=record
         familia:string[20];
         imya:string[20];
         gruppa:string[20];
         ocenka:byte;
         end;
f:file of stud;
0
Mr_Bula
0 / 0 / 4
Регистрация: 29.04.2013
Сообщений: 99
30.10.2014, 08:09  [ТС] #3
Извините что пишу здесь, но не подскажите кое что, вот написал код, программа вроде бы должна делать всё выше перечисленное, но ругается на строку: (students[i].Mark = Mrk.Value) then, пишет что то вроде -
[Error] Unit1.pas(127): Record, object or class type required
Ничего понять не могу, делал по учебнику, и не работает всё равно.


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
 type
  TStudents = record
   LastName, FirstName, Group : ShortString;
   Mark : integer;
  end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 Students_Save.Cells[0, 0] := 'Г”Г*ìèëèÿ';
 Students_Save.Cells[1, 0] := 'Èìÿ';
 Students_Save.Cells[2, 0] := 'ÃðóïïГ*';
 Students_Save.Cells[3, 0] := 'ÎöåГ*ГЄГ*';
 
 Students_All.Cells[0, 0] := 'Г”Г*ìèëèÿ';
 Students_All.Cells[1, 0] := 'Èìÿ';
 Students_All.Cells[2, 0] := 'ÃðóïïГ*';
 Students_All.Cells[3, 0] := 'ÎöåГ*ГЄГ*';
 
 Students_Find.Cells[0, 0] := 'Г”Г*ìèëèÿ';
 Students_Find.Cells[1, 0] := 'Èìÿ';
 Students_Find.Cells[2, 0] := 'ÃðóïïГ*';
 Students_Find.Cells[3, 0] := 'ÎöåГ*ГЄГ*';
end;
 
procedure TForm1.SaveCountChange(Sender: TObject);
begin
 Students_Save.RowCount := SaveCount.Value + 1;
end;
 
procedure TForm1.InButtonClick(Sender: TObject);
var student : TStudents;
    f : File;
    i : integer;
begin
 AssignFile(f, 'DateStudent.dat');
 Rewrite(f, 1);
 for i := 1 to Students_Save.RowCount - 1 do
  Begin
   student.LastName := Students_Save.Cells[0, i];
   student.FirstName := Students_Save.Cells[1, i];
   student.Group := Students_Save.Cells[2, i];
   student.Mark := StrToInt(Students_Save.Cells[3, i]);
 
   BlockWrite(f, student.LastName, SizeOf(student.LastName));
   BlockWrite(f, student.FirstName, SizeOf(student.FirstName));
   BlockWrite(f, student.Group, SizeOf(student.Group));
   BlockWrite(f, student.Mark, SizeOf(student.Mark));
  End;
 CloseFile(f);
end;
 
procedure TForm1.OutButtonClick(Sender: TObject);
var students : array[1..20] of TStudents;
    f : File;
    i, count, min_index : integer;
    mrk : integer;
begin
 AssignFile(f, 'DateStudent.dat');
 Reset(f, 1);
 count := 0;
 while not Eof(f) do
  Begin
   inc(count);
   BlockRead(f, students[count].LastName,
                 SizeOf(students[count].LastName));
   BlockRead(f, students[count].FirstName,
                 SizeOf(students[count].FirstName));
   BlockRead(f, students[count].Group,
                 SizeOf(students[count].Group));
   BlockRead(f, students[count].Mark,
                 SizeOf(students[count].Mark));
  End;
 CloseFile(f);
 Students_All.RowCount := count + 1;
 for i := 1 to count do
  Begin
   Students_All.Cells[0, i] := students[i].LastName;
   Students_All.Cells[1, i] := students[i].FirstName;
   Students_All.Cells[2, i] := students[i].Group;
   Students_All.Cells[3, i] := IntToStr(students[i].Mark);
  End;
 min_index := 0;
 for i := 1 to count do
  if (students[i].Group = Group.Text) and
      (students[i].Mark = Mrk.Value) then
       Begin
        Students_Find.Cells[0, i] := students[i].LastName;
        Students_Find.Cells[1, i] := students[i].FirstName;
        Students_Find.Cells[2, i] := students[i].Group;
        Students_Find.Cells[3, i] := IntToStr(students[i].Mark);
       End;
end;
 
end.
0
Puporev
Модератор
54148 / 41781 / 28887
Регистрация: 18.05.2008
Сообщений: 98,330
30.10.2014, 08:13 #4
Цитата Сообщение от Mr_Bula Посмотреть сообщение
Ничего понять не могу, делал по учебнику, и не работает всё равно.
А не нужно списывать то в чем ничего не понимаете.
Я точно в этом разбираться не собираюсь.
0
Mr_Bula
0 / 0 / 4
Регистрация: 29.04.2013
Сообщений: 99
30.10.2014, 08:34  [ТС] #5
спасибо блин, помог, если не хочешь или не можешь помочь то на кой ляд вообще отвечать
0
Puporev
Модератор
54148 / 41781 / 28887
Регистрация: 18.05.2008
Сообщений: 98,330
30.10.2014, 08:44 #6
Ты спросил
Цитата Сообщение от Mr_Bula Посмотреть сообщение
Представления не имею что из себя представляет двоичный файл
Я ответил что это как вариант типизированный файл.
Ты нашел пример с файлом без типа, если это больше нравится, разбирайся.
0
D1973
Модератор
3271 / 2319 / 1161
Регистрация: 21.01.2014
Сообщений: 9,647
Записей в блоге: 3
Завершенные тесты: 1
30.10.2014, 08:59 #7
Лучший ответ Сообщение было отмечено Mr_Bula как решение

Решение

Вот так как-то...
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
type
 TTables = record
   Family : string[30];
   Name   : string[30];
   Group  : string[10];
   Ball   : integer;
 end;
 
type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid; //goEditing := true
    Button1: TButton;
    Panel1: TPanel;  //При старте Visible := false
    StringGrid2: TStringGrid;
    Button2: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    UpDown1: TUpDown;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private { Private declarations }
  public { Public declarations }
  end;
 
var
  Form1 : TForm1;
  f     : file of TTables;
  tab   : TTables;
  fName : string;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
begin
 AssignFile(f, fName);
 Rewrite(f);
 with StringGrid1 do
  for i := FixedRows to RowCount - 1 do
   begin
    tab.Family := Cells[0, i];
    tab.Name := Cells[1, i];
    tab.Group := Cells[2, i];
    tab.Ball := StrToIntDef(Cells[3, i], 0);
    Write(f, tab);
   end;
 CloseFile(f);
 Form1.Height := 496;
 Panel1.Visible := true;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var i, j , k : integer;
begin
 i := 1;
 with StringGrid2 do
  begin
   for j := 0 to ColCount - 1 do
    for k := 1 to RowCount - 1 do
     Cells[j, k] := '';
   RowCount := 2;
  end;
 reset(f);
 while not eof(f) do
  begin
    read(f,tab);
    if (Length(Edit1.Text) = 0) or (UpDown1.Position = 0)
     then begin
           ShowMessage('Не указаны параметры отбора');
           break;
          end;
    if(tab.Group <> Edit1.Text) or (tab.Ball <> UpDown1.Position) then continue
    else begin
          with StringGrid2 do
           begin
            Cells[0, i] := tab.Family;
            Cells[1, i] := tab.Name;
            Cells[2, i] := tab.Group;
            Cells[3, i] := IntToStr(tab.Ball);
            RowCount := RowCount + 1;
           end;
         end;
    inc(i);
  end;
 CloseFile(f);
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 with StringGrid1 do
  begin
   Cells[0, 0] := 'Фамилия';
   Cells[1, 0] := 'Имя';
   Cells[2, 0] := 'Группа';
   Cells[3, 0] := 'Оценка';
  end;
 with StringGrid2 do
  begin
   Cells[0, 0] := 'Фамилия';
   Cells[1, 0] := 'Имя';
   Cells[2, 0] := 'Группа';
   Cells[3, 0] := 'Оценка';
  end;
 fName := ExtractFilePath(Application.ExeName) + 'table.dat';
 Form1.Height := 240;
end;
А вообще-то для таких задач рациональнее использовать базы данных, т.к. файл БД - тоже бинарный файл и формально под условие задачи подходит
0
Миниатюры
Сохранение таблицы в двоичный файл  
D1973
Модератор
3271 / 2319 / 1161
Регистрация: 21.01.2014
Сообщений: 9,647
Записей в блоге: 3
Завершенные тесты: 1
30.10.2014, 09:08 #8
Цитата Сообщение от Mr_Bula Посмотреть сообщение
ругается на строку: (students[i].Mark = Mrk.Value) then
В твоем примере Mrk - переменная типа integer, а не какой-то объект, чтобы у него было свойство Value. Скорее всего в твоем учебнике под Mrk подразумевается какой-то контрол на форме, читай внимательней.
0
Puporev
Модератор
54148 / 41781 / 28887
Регистрация: 18.05.2008
Сообщений: 98,330
30.10.2014, 09:29 #9
Вот для примера.
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
implementation
 
{$R *.dfm}
//Г§Г*Г¤Г*äèì Г*åêîòîðûå ГЇГ*Г°Г*ìåòðû ГІГ*áëèö
procedure TForm1.FormCreate(Sender: TObject);
begin
with StringGrid1 do
 begin
  fixedcols:=0;
  fixedrows:=1;
  colcount:=4;
  defaultcolwidth:=80;
  options:=options+[goEditing];
  cells[0,0]:='Г”Г*ìèëèÿ';
  cells[1,0]:='Èìÿ';
  cells[2,0]:='ÃðóïïГ*';
  cells[3,0]:='ÎöåГ*ГЄГ*';
 end;
with StringGrid2 do
 begin
  fixedcols:=0;
  fixedrows:=1;
  colcount:=4;
  rowcount:=2;
  defaultcolwidth:=80;
  cells[0,0]:='Г”Г*ìèëèÿ';
  cells[1,0]:='Èìÿ';
  cells[2,0]:='ÃðóïïГ*';
  cells[3,0]:='ÎöåГ*ГЄГ*';
 end;
end;
//ГІГЁГЇ Г§Г*ГЇГЁГ±ГҐГ©
type stud=record
          familia:string[20];
          imya:string[20];
          gruppa:string[20];
          ocenka:byte;
          end;
var f:file; //ïåðåìåГ*Г*Г*Гї ГґГ*éëГ* ГЎГҐГ§ ГІГЁГЇГ*
//Г§Г*Г¤Г*äèì ñòðîêè Гў ГІГ*áëèöå 1
procedure TForm1.Edit1Change(Sender: TObject);
begin
StringGrid1.RowCount:=strtoint(Edit1.Text)+1;
end;
//Г§Г*ГЇГЁГёГҐГ¬ Г§Г*ГЇГЁГ±ГЁ ГЁГ§ ГІГ*áëèöû 1 Гў ГґГ*éë
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
    z:stud;
begin
assignfile(f,'DateStudent.dat');
rewrite(f,1);
for i:=1 to StringGrid1.RowCount-1 do
 begin
  z.familia:=StringGrid1.Cells[0,i];
  z.imya:=StringGrid1.Cells[1,i];
  z.gruppa:=StringGrid1.Cells[2,i];
  z.ocenka:=strtoint(StringGrid1.Cells[3,i]);
  blockwrite(f,z,sizeof(z));
 end;
closefile(f);
end;
//Г§Г*Г¤Г*ëèì ãðóïïó, îöåГ*ГЄГі ГЁ áóäåì ГЁГ±ГЄГ*ГІГј Гў ГґГ*éëå
procedure TForm1.Button2Click(Sender: TObject);
var gr:string[20];
    oc,k:byte;
    z:stud;
begin
gr:=Edit2.Text;
oc:=strtoint(Edit3.Text);
assignfile(f,'DateStudent.dat');
reset(f,1);
k:=0;
while not eof(f) do
 begin
  BlockRead(f,z,sizeof(z));
  if (z.gruppa=gr)and(z.ocenka=oc) then
   begin
    k:=k+1;
    StringGrid2.Cells[0,k]:=z.familia;
    StringGrid2.Cells[1,k]:=z.imya;
    StringGrid2.Cells[2,k]:=z.gruppa;
    StringGrid2.Cells[3,k]:=inttostr(z.ocenka);
    StringGrid2.RowCount:=StringGrid2.RowCount+1;
   end;
 end;
closefile(f);
if k=0 then ShowMessage('ÑòóäåГ*ГІГ* Г± ГІГ*êîé ãðóïïîé ГЁ îöåГ*êîé Г*ГҐГІ');
StringGrid2.RowCount:=StringGrid2.RowCount-1;
end;
0
Вложения
Тип файла: rar Запись в файл без типа.rar (197.3 Кб, 6 просмотров)
Mr_Bula
0 / 0 / 4
Регистрация: 29.04.2013
Сообщений: 99
30.10.2014, 10:58  [ТС] #10
D1973, подскажите, а где в вашем коде участок отвечающий за то чтобы строки в StringGrid2 выводились по порядку, а то у меня они записываются во вторую таблицу с такими же индексами с какими были в первой, то есть если условию соответствует 3 строка от программа записывает её в 3 строку второй таблицы.
0
D1973
Модератор
3271 / 2319 / 1161
Регистрация: 21.01.2014
Сообщений: 9,647
Записей в блоге: 3
Завершенные тесты: 1
30.10.2014, 11:05 #11
Строка 60 кода. Переменная i := 1;
Этот самый i - номер строки в которую будут записаны данные.
В цикле считываем из файла структуру, если она удовлетворяет условию, записываем ее в i-тую строку (Cells[0, i] := tab.Family; пишем в первый столбец строки с номером i, не забывая, что номера строк и столбцов с StringGrid начинаются с 0), а перед следующим считыванием увеличиваем i на 1. (строка 88: inc(i))
0
Puporev
Модератор
54148 / 41781 / 28887
Регистрация: 18.05.2008
Сообщений: 98,330
30.10.2014, 11:07 #12
Цитата Сообщение от D1973 Посмотреть сообщение
не забывая, что номера строк и столбцов с StringGrid начинаются с 0),
Если есть фиксированная строка-заголовок то значения вводим с 1.
0
D1973
Модератор
3271 / 2319 / 1161
Регистрация: 21.01.2014
Сообщений: 9,647
Записей в блоге: 3
Завершенные тесты: 1
30.10.2014, 11:11 #13
Цитата Сообщение от Puporev Посмотреть сообщение
Если есть фиксированная строка-заголовок то значения вводим с 1.
Их может быть и 2 и 3... Тогда уж вводим значения с StringGrid.FixedRow.
Тогда, действительно, правильней в моем примере изменить строку 60 на:
Delphi
1
i := StringGrid2.FixedRow;
0
Mr_Bula
0 / 0 / 4
Регистрация: 29.04.2013
Сообщений: 99
30.10.2014, 11:34  [ТС] #14
Просто я к чему пишу, исправил себе программу по вашему коду и он вот так странно выводит строки. Индексы все указал правильно, но он все равно не хочет выводить строки одну за другой.
0
D1973
Модератор
3271 / 2319 / 1161
Регистрация: 21.01.2014
Сообщений: 9,647
Записей в блоге: 3
Завершенные тесты: 1
30.10.2014, 12:01 #15
Код покажи
0
Mr_Bula
0 / 0 / 4
Регистрация: 29.04.2013
Сообщений: 99
30.10.2014, 12:04  [ТС] #16
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
var
  Form1: TForm1;
  student : TStudents;
  f : File of TStudents;
implementation
 
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 with Students_Save do
  begin
   Cells[0, 0] := 'Г”Г*ìèëèÿ';
   Cells[1, 0] := 'Èìÿ';
   Cells[2, 0] := 'ÃðóïïГ*';
   Cells[3, 0] := 'ÎöåГ*ГЄГ*';
  end;
 
 with Students_All do
  begin
   Cells[0, 0] := 'Г”Г*ìèëèÿ';
   Cells[1, 0] := 'Èìÿ';
   Cells[2, 0] := 'ÃðóïïГ*';
   Cells[3, 0] := 'ÎöåГ*ГЄГ*';
  end;
 
 with Students_Find do
  begin
   Cells[0, 0] := 'Г”Г*ìèëèÿ';
   Cells[1, 0] := 'Èìÿ';
   Cells[2, 0] := 'ÃðóïïГ*';
   Cells[3, 0] := 'ÎöåГ*ГЄГ*';
  end;
end;
 
procedure TForm1.SaveCountChange(Sender: TObject);
begin
 Students_Save.RowCount := SaveCount.Value + 1;
end;
 
procedure TForm1.InButtonClick(Sender: TObject);
var i : integer;
begin
 AssignFile(f, 'DateStudent.dat');
 Rewrite(f);
 with Students_Save do
  begin
   for i := 1 to RowCount - 1 do
    begin
     student.LastName := Cells[0, i];
     student.Name := Cells[1, i];
     student.Group := Cells[2, i];
     student.Mark := StrToInt(Cells[3, i]);
     write(f, student);
    end;
  end;
 CloseFile(f);
end;
 
procedure TForm1.OutButtonClick(Sender: TObject);
var i : integer;
begin
 AssignFile(f, 'DateStudent.dat');
 Reset(f);
 i := 1;
 while not Eof(f) do
  begin
   read(f, student);
   with Students_All do
    begin
     Cells[0, i] := student.LastName;
     Cells[1, i] := student.Name;
     Cells[2, i] := student.Group;
     Cells[3, i] := IntToStr(student.Mark);
     RowCount := i + 1;
    end;
   inc(i);
  end;
 CloseFile(f);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var i, j, k : integer;
begin
 i := 1;
 with Students_Find do
  begin
   for j := 0 to ColCount - 1 do
    for k := 1 to RowCount - 1 do
     Cells[j, k] := '';
     RowCount := 2;
  end;
 reset(f);
 while not eof(f) do
  begin
   read(f, student);
   if length(GroupEdit.Text) = 0 then
    begin
     ShowMessage('ГЌГҐ ГіГЄГ*Г§Г*Г* ГЇГ*Г°Г*ìåòð îòáîðГ*');
     break;
    end;
   if (student.Group = GroupEdit.Text) and
 
       (student.Mark = MrkEdit.Value) then
        begin
         with Students_Find do
          begin
           Cells[0, i] := student.LastName;
           Cells[1, i] := student.Name;
           Cells[2, i] := student.Group;
           Cells[3, i] := IntToStr(student.Mark);
           RowCount := RowCount + 1;
          end;
        end;
   inc(i);
  end;
 CloseFile(f);
end;
0
D1973
Модератор
3271 / 2319 / 1161
Регистрация: 21.01.2014
Сообщений: 9,647
Записей в блоге: 3
Завершенные тесты: 1
30.10.2014, 12:18 #17
В общем-то никакого криминала не вижу, кроме, разве что, строку 76 измени на
Delphi
1
RowCount := RowCount + 1;
И прицепи картинку выполнения программы, чтобы понять, где косячек вылез

Добавлено через 2 минуты
Ага, увидел...
В 115 строке после end убери ;
После 115 строки поставь else continue;
Должно заработать.
0
Mr_Bula
0 / 0 / 4
Регистрация: 29.04.2013
Сообщений: 99
30.10.2014, 12:28  [ТС] #18
Вот блин, и правда, а я почитал про это оператор и просто подумал что могу и без него обойтись, видать нет. Спасибо за помощь.
0
northener
пофигист широкого профиля
3252 / 2304 / 628
Регистрация: 15.07.2013
Сообщений: 13,600
30.10.2014, 12:56 #19
Цитата Сообщение от D1973 Посмотреть сообщение
В 115 строке после end убери ;
После 115 строки поставь else continue;
Логичнее было бы поменять местами 115 и 116 строчки.
1
D1973
Модератор
3271 / 2319 / 1161
Регистрация: 21.01.2014
Сообщений: 9,647
Записей в блоге: 3
Завершенные тесты: 1
30.10.2014, 13:43 #20
northener, упс, а ведь точно
0
30.10.2014, 13:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2014, 13:43
Привет! Вот еще темы с решениями:

Сохранение содержимого StringGrid-а в виде таблицы в текстовом документе
Есть заполненая таблица Stringgrid размером Nx2 (n&gt;3) как сохранить в...

Сохранение данных из таблицы StrinGrid в уже созданный Excel
Здравствуйте дорогие программисты. Помогите пожалуйста, столкнулся вот с такой...

Сохранение в файл
Всем здравствуйте. Такая проблема в этом коде не работает сохранение:...

сохранение в файл
Объясните пожалуйста, как сохранить открытый уже файл. У меня есть 2 опции:...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru