Показать сообщение отдельно
  #105  
Старый 19.04.2008, 12:39
MegaPiha MegaPiha вне форума
Активный
 
Регистрация: 24.03.2008
Сообщения: 227
Версия Delphi: Delphi 7
Репутация: 30
По умолчанию

Цитата:
Сообщение от AndrYxo
Не, данные стирнггрида записать в файл и потом что бы можно было их прочесть из файла и вставить обратно в стринггрид

Сохранение stringGrid1 в файл.
Код:
procedure TForm1.BitBtn2Click(Sender: TObject);
var
   s :TStringlist;
   j:Integer;
   Str:String;
   posy, posx, i : Integer;

Begin
    with TSaveDialog.Create(Owner) do
    begin
       DefaultExt:='.txt';
       Filter:= 'файлы проекта|*.txt';
       if not Execute then exit;
       s:=TStringList.Create;
       s.Clear;
       for i:=0 to StringGrid1.RowCount-1 do
       begin
          Str := '' ;
          for j:=0 to StringGrid1.ColCount-1 do
              str:=str+StringGrid1.Cells[j, i]+' ';
          s.Add(Str);
       end;
       S.SaveToFile(FileName);
end;
    s.Free;
end;


Чтение данных их файла в StringGrid2
Код:
rocedure TForm1.BitBtn3Click(Sender: TObject);
var
   s :TStringlist;
   i,j, posy, posx: Integer;
   Str:String;
Begin
    with TOpenDialog.Create(Owner) do
    begin
       DefaultExt:='.txt';
       Filter:= 'файлы проекта|*.txt';
       if not Execute then exit;
       s:=TStringList.Create;
       S.LoadFromFile(FileName);
       label2.Caption:= IntToStr(S.Count);
       For posy := 1 to S.Count do
       begin
           posx := 0;
           Str := '';
           label1.Caption:= IntToStr(Length(S.Strings[posy-1]));
           For i := 1 to Length(S.Strings[posy-1]) do
           begin
              if S.Strings[posy-1][i] <> ' ' then
                  Str := Str + S.Strings[posy-1][i]
              else
              begin
                  StringGrid2.Cells[posx, posy-1] := Str;
                  Str := '';
                  inc(posx);
              end;

           end;
       end;
    end;
    StringGrid2.RowCount := posy;
    StringGrid2.ColCount := posx;
    S.Free;
end;