![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Друзья, возникла такая проблема. Работаю с компонентом stringgrid, записи добавляются, удаляются, сохраняются, но вот блин проблема. Когда я пытаюсь открыть файл который у меня сохранён, в stringgrid отображается только первая строчка.
Сохраняю таким образом: Код:
procedure TForm5.Image3Click(Sender: TObject);
var List: TStringList;
i, j: Integer;
begin
List:=TStringList.Create;
with Stringgrid1 do
for i:=0 to RowCount-1 do
for j:=0 to ColCount-1 do
List.Add(Cells[j, i]);
List.SaveToFile('sostav\'+form3.dbedit1.text+'.txt');
end;Открываю сохранённый файл так: Код:
procedure TForm5.Image4Click(Sender: TObject);
var List: TStringList;
i, j: Integer;
begin
List:=TStringList.Create;
List.LoadFromFile('sostav\'+form3.dbedit1.text+'.txt');
with Stringgrid1 do
for i:=0 to RowCount-1 do
for j:=0 to ColCount-1 do
Cells[j, i]:=List[i*ColCount+j];
end;Друзья, помогите пожалуйста. Заранее спасибо! |
|
#2
|
||||
|
||||
|
Проблема решена=)
Если кому то надо держите Сохранение: Код:
procedure TForm5.Button1Click(Sender: TObject);
var i,j:integer;
sl:TStringList;
str:string;
begin
sl:=TStringList.Create;
sl .Add(IntToStr(StringGrid1.RowCount)+#9+ IntToStr(StringGrid1.ColCount));
for i:=0 to StringGrid1.RowCount-1 do
begin
str:='';
for j:=0 to StringGrid1.ColCount-1 do
str:=str+StringGrid1.Cells[j,i]+#9;
sl.Add(Str);
end;
// Сохраняем содержимое списка строк в файле
sl.SaveToFile('sostav\'+form3.dbedit1.text+'.txt');
sl .Free;
end;Код:
var
sl:TStringList;
i,j:Integer;
Str, CellText:String;
begin
sl:=TStringList.Create;
sl.LoadFromFile('d:\1.txt');
Str:=sl[0];
i:=StrToInt(copy(Str,1,pos(#9,Str)-1));
StringGrid1.RowCount:=i;
Delete(Str,1,pos(#9,Str));
StringGrid1.ColCount:= StrToInt(Str);
for i:=1 to sl.Count-1 do
begin
Str:=sl[i];
j:=0;
while Length(Str)>0 do
begin
CellText:=copy(Str,1,pos(#9,Str)-1);
StringGrid1.Cells[j,i-1]:=CellText;
Delete(Str,1,pos(#9,Str));
inc(j);
end;
end;
sl.Free;Код вырезал из исходника какого то найденнго на просторах инета=) |