Показать сообщение отдельно
  #11  
Старый 06.04.2009, 15:48
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

rasamaha, вот посмотрите. Загрузка из ранее сохраненного файла в StringGrid.
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  i, LastRow, CommaPos: Integer;
  FirstStr: string;
  SList: TStringList;
begin
  if not OpenDialog1.Execute then Exit;
  SList := TStringList.Create;
  try
    SList.LoadFromFile(OpenDialog1.FileName);
    StringGrid1.RowCount := SList.Count;
    FirstStr := SList.Strings[0];
    i := 0; CommaPos := Pos(',', FirstStr);
    while CommaPos <> 0 do
    begin
      Delete(FirstStr, 1, CommaPos);
      Inc(i);
      CommaPos := Pos(',', FirstStr);
    end;
    StringGrid1.ColCount := i + 1;
    LastRow := StringGrid1.RowCount - 1;
    for i := 0 to LastRow do
      StringGrid1.Rows[i].CommaText := SList.Strings[i];
  finally
    SList.Free;
  end;
end;
Сказанное popyurv остается в силе. Как вариант можно перед сохранением производить проверку ячеек на наличие в них символа-разделителя, заменяя его, скажем, на какой-нибудь безопасный символ. А при загрузке заменять его обратно.

_________

Я исправила немного!! Была ошибка Delete(FirstStr, 1, i); И лучше внять совету popyurv ниже и использовать вместо атрибута CommaText другое свойство — DelimitedText, предварительно устанавливая в циклах для каждой строки нужное значение разделителя, например: StringGrid1.Rows[i].Delimiter := '|';
Ответить с цитированием