Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2010, 18:04   #1
xvedar
Новичок
Джуниор
 
Регистрация: 02.10.2009
Сообщений: 1
Вопрос Заполнения StringGrid из StringList

Здравствуйте.
Может у кого мозги получше чем у меня. Возникла проблема заполнения StringGrid.
Вся суть программы в том что бы вывести текст в StringGrid из txt файла при этом откинуть лишние символы.

Все заделал но вот сам вывод оказался не так прост. Получается что из StringList берем строки они имеют индекс и записываем каждую строку в ячейку но когда записали 8 строк в 8 ячеек переход на новую строку StringGrid и снова записываем 8 строк и так далее.

Может кто поможет заделать так или предложит другой путь решения проблемы.

Код:
var
  Form1: TForm1;
  FText:string;
implementation
{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
{
 Замена.
 первый параметр - регулярное выражение для поиска
 второй - на что заменять.
 Заменяются все вхождения
}
var
sl:TStringList;
RegE:TRegExpr;
ToText: string;
i, j, k : integer;

begin
  //Определение объекта списка строк, и указание нашей переменной на него
  sl:=TStringList.Create;
  RegE:=TRegExpr.Create;
  try
    //Загрузить текст с файла в TStringList
    sl.LoadFromFile('stat.txt');
    //Удаления первой строки т.к. содержит ненужную информацию
    sl.Delete(0);
    //Переганяем строки в текст
    FText := sl.Text;

    RegE.ModifierG := false;
    //Находим в тексте задонный символ
    RegE.Expression := '#';
    //Удаляем из текста символ (найденный символ заменяем на пустату)
    FText := RegE.Replace(FText,ToText,false);

    //Каждый элемент списка будет разделён задонным символом (работаем с TStringList)
    sl.Delimiter := '~';
    //Получает или устанавливает список через большую строку. Эта строка содержит
    //список строк разделенных значением Delimiter (по умолчанию - запятая).
    sl.DelimitedText := FText;

    //Теперь показываем эти данные в таблице
//Пробовал реализовать по разному но не получается что та такое написал но выводит одинаковые строки
    for j := 0 to 5 do
    for i := 0 to sl.Count - 1 do
    begin
      StringGrid1.Cells[i , j+1] := sl[i];
    end; 

  finally
    sl.Free;
    RegE.free;
  end;
end;
end.
Содержания файла:
list_Format
01.12.2009#~#9916/4884(33%)/822#~#4058/107(2%)/665#~#47/9(17%)/9#~#2485/230(8%)/156#~#1479/45(2%)/255#~#4813/891(15%)/487#~#1674/329(16%)/232
02.12.2009#~#5945/1407(19%)/761#~#4419/999(18%)/1037#~#2807/82(2%)/168#~#1885/17(0%)/154#~#2670/445(14%)/360#~#7359/1260(14%)/549#~#4535/4041(47%)/350
03.12.2009#~#2785/1008(26%)/289#~#1807/1410(43%)/316#~#636/239(27%)/54#~#3912/346(8%)/229#~#54/261(82%)/51#~#3525/247(6%)/304#~#2022/20(0%)/401
и так далее

В конце работы sl содержит строки:
01.12.2009
9916/4884(33%)/822
4058/107(2%)/665
47/9(17%)/9
2485/230(8%)/156
1479/45(2%)/255
и так далее

Последний раз редактировалось xvedar; 03.01.2010 в 18:35.
xvedar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Раздваивание строки в StringList (Delphi 7) alxd Помощь студентам 8 23.09.2009 13:11
stringlist grater83 Общие вопросы Delphi 2 21.09.2009 14:26
Сохранение содержимого StringList в файл rainbow Общие вопросы Delphi 1 19.11.2008 10:34
Заполнения Webbrowser GAGARIN-NEW Компоненты Delphi 5 12.12.2007 23:38
Вопрос по поводу StringList(а) KAMENYKA Компоненты Delphi 4 07.12.2007 13:01