Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#11

Re: Probleme mit StringGrid speichern

  Alt 29. Nov 2007, 12:43
Hallo Alex,

die Zeilennummern sind ja Bestandteil deiner Beispieldaten, also werden sie auch mit ausgegeben. Wenn du das unterdrücken möchtest, dann vielleicht so:

Delphi-Quellcode:
procedure SaveGrid(sg: TStringGrid; s: TStream; so: TSaveOptions = []);
var
  iLow, iHigh, i, n: Integer;
  ss: TStringStream;
  bSaveCols, bExcludeFixed: Boolean;
  sl: TStrings;
begin
  ss := TStringStream.Create('');
  sl := TStringList.Create;
  with sg do
  begin
    bSaveCols := soSaveCols in so;
    bExcludeFixed := soExcludeFixed in so;
    if bSaveCols then
    begin
      iLow := IfThen(bExcludeFixed, FixedCols);
      iHigh := Pred(ColCount);
    end else
    begin
      iLow := IfThen(bExcludeFixed, FixedRows);
      iHigh := Pred(RowCount);
    end;
    for i := iLow to iHigh do
    begin
      ss.Size := 0;
      if bSaveCols then
      begin
        sl.Assign(Cols[i]);
        n := FixedRows;
      end else
      begin
        sl.Assign(Rows[i]);
        n := FixedCols;
      end;
      if bExcludeFixed then
        while n > 0 do
        begin
          sl.Delete(0);
          Dec(n);
        end;
      ss.WriteString(sl.CommaText + sLineBreak);
      ss.Position := 0;
      s.CopyFrom(ss, ss.Size);
    end;
  end;
  sl.Free;
  ss.Free;
end;
Getippt und nicht getestet.

Freundliche Grüße
  Mit Zitat antworten Zitat