Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > записать данные из grid в StringList


Автор: Teleport 7.4.2009, 16:46
Решил вместо динамических массивов использорвать StringList. Допустим, есть grid, в который пользователь вносит данные. Как записать данные в StringList грамотно? Мне вот только одна идея приходит - записывать по столбцам в один StringList. А есть ли возможность сделать двухмерный StringList? Читал, что можно обращаться к элементу StringList'а по индексу. Так вот хочу узнать - может по 2-ум индексам можно, если есть возможность сделать его двухмерным?

Автор: san46 7.4.2009, 18:58
TStringList - динамический одномерный массив.
Можно из StringGrid'а (только об этом компоненте идет речь) построчно записать данные из ячеек в TStringList. Один элемент TStringList -  содержит данные одной строки StringGrid'а.

Для примера запись из одной строки StringGrid в один элемент массива TStringList:
Код

  SL := TStringList.Create;
  //из первой строки Grid'а значения ячеек записываются в 0-й элемент TStringList - 
  //в виде строки, где значение каждой ячейки разделены запятой
  SL.Add(StringGrid1.Rows[1].CommaText); 

  //для приимера обратное действие: из элемента TStringList те же данные копируются во вторую строку Grid'а
  StringGrid1.Rows[2].CommaText := SL[0];
  SL.Free;

Из приведенного примера не трудно сообразить как всю таблицу записать в TStringList.

Автор: THandle 7.4.2009, 19:00
Teleport, ИМХО, не стоит извращаться, и нужно использовать обычный двумерный динамический массив. С ним будет удобнее.

Максимум удобства, которые можно было выжать из TStringList в условиях грида уже использованы - Cols, Rows.

Автор: Teleport 7.4.2009, 20:15
Ясно, ответ получен. Одномерный массив. И не стоит что-то изобретать. smile 
Спасибо Вам  smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)