|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Stringgrid и файлы
Столкнулся с проблемой сохранения в файл информации из Stringgrid`а . Уже пробовал и через двумерный массив, и через TStringList. Все равно ничего не выходит
Вот код записи через TStringList. Код:
procedure TForm1.N2Click(Sender: TObject); var i,j: integer; List: TStringList; Table: TStringGrid; begin Assignfile(f,Combobox2.Text); rewrite(f); List:=TStringList.Create; with Table do for i:=0 to StringGrid1.RowCount-1 do for j:=0 to StringGrid1.ColCount-1 do List.Add(Cells[j, i]); List.SaveToFile(Combobox2.Text); end; Вот запись: Код:
procedure TForm1.N2Click(Sender: TObject); var i,j: integer; begin Assignfile(f,Combobox2.Text+'$'+Combobox1.Text); rewrite(f); for i := 2 to Stringgrid1.ColCount-1 do p[0].ocenki:=p[0].ocenki+Stringgrid1.Cells[i,0]; for i:=1 to Stringgrid1.RowCount-1 do for j:=2 to Stringgrid1.ColCount-1 do p[i].ocenki:=p[i].ocenki+Stringgrid1.Cells[j,i]; p[1].col:=Stringgrid1.ColCount; p[1].row:=Stringgrid1.RowCount; for i:=0 to Stringgrid1.RowCount-1 do write(f,p[i]); CloseFile(f); AssignFile(f2,ComboBox2.Text); Rewrite(f2); for i:=1 to Stringgrid1.RowCount-1 do begin p[i].number:=Stringgrid1.Cells[0,i]; p[i].fam:=Stringgrid1.Cells[1,i]; end; p[1].col:=Stringgrid1.ColCount; p[1].row:=Stringgrid1.RowCount; for i:=1 to Stringgrid1.RowCount-1 do write(f2,p[i]); CloseFile(f2); end; Код:
procedure TForm1.ComboBox1Change(Sender: TObject); var i,j,col,row,l,c,papa,k: integer; s: string; koko: array[1..35] of Integer; begin i:=0; if Combobox2.Text<>'' then begin if FileExists(Combobox2.Text+'$'+Combobox1.Text) then begin Assignfile(f,Combobox2.Text+'$'+Combobox1.Text); reset(f); while not Eof(f) do begin read(f,p[i]); i:=i+1; end; col:=p[1].col; row:=p[1].row; Stringgrid1.ColCount:=col; Stringgrid1.RowCount:=row; for i := 2 to Stringgrid1.ColCount-1 do Stringgrid1.ColWidths[i]:=39; s:=p[0].ocenki; for i := 2 to Stringgrid1.ColCount-1 do for j := 1 to 5 do begin StringGrid1.Cells[i,0]:=Stringgrid1.Cells[i,0]+s[1]; Delete(s,1,1); end; for i:=1 to row-1 do begin for j:=2 to col-1 do begin s:=p[i].ocenki; l:=length(p[i].ocenki); for c:=1 to l do begin Stringgrid1.Cells[j,i]:=s[1]; delete(s,1,1); end; end; end; CloseFile(f); end; end; end; Последний раз редактировалось M.A.D.M.A.N., 01.05.2014 в 14:56. |
#2
|
||||
|
||||
Код:
procedure TForm20.btnSaveClick(Sender: TObject); var R, C: Integer; begin AssignFile(F, 'd:\GridData.txt'); Rewrite(F); WriteLn(F, StringGrid1.ColCount, ' ', StringGrid1.RowCount); for R := StringGrid1.FixedRows to StringGrid1.RowCount - 1 do for C := StringGrid1.FixedCols to StringGrid1.ColCount - 1 do WriteLn(F, StringGrid1.Cells[C, R]); CloseFile(F); end; Код:
procedure TForm20.btnLoadClick(Sender: TObject); var R, C, ColCount, RowCount: Integer; CellData: String; begin AssignFile(F, 'd:\GridData.txt'); Reset(F); ReadLn(F, ColCount, RowCount); StringGrid1.ColCount := ColCount; StringGrid1.RowCount := RowCount; for R := StringGrid1.FixedRows to StringGrid1.RowCount - 1 do for C := StringGrid1.FixedCols to StringGrid1.ColCount - 1 do begin ReadLn(F, CellData); StringGrid1.Cells[C, R] := CellData; end; CloseFile(F); end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
А возможна такая же схема с типизированными файлами??
|
#4
|
||||
|
||||
Если у вас ширина таблицы фиксирована, то возможно.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
и строки и столбцы можно добавлять. а как это влияет?
|