Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Значения ячеек таблицы в одну строку

1.2K
23 ноября 2005 года
richel
142 / / 20.01.2005
Еще одна задачка, которую не могу довести до ума. Направьте, пожалуйста, на истинный путь...:{
Есть вордовская таблица с rows_count строк и col_count столбцов. Пробежав по всем строкам и столбцам я вытащила текст из всех ячеек.
Затем перевела тип Variant в тип String, убрала символ конца строки и лишние пробелы. Получила текст ячейки в чистом виде.
А далее пытаюсь вставить текст в ТRichEdit таким образом, чтобы это выглядело как транспортный массив:
 
Код:
| 1 rows-1 col | 1 rows-2 col | 1 rows-3 col | 1 rows-col_count col |
...
| rows_count rows-1 col |rows_count rows-2 col | rows_count rows-3 col | rows_count rows-col_count col |

Код, с которым я работаю, такой:
Код:
AnsiString s = "";
   for (int i=1; i <=rows_count; i++) {
       for(int j=1; j <=col_count; j++) {
       Variant Cell3 = Tables3.OleFunction("Cell", i, j);
         Variant v = Cell3.OlePropertyGet("Range").OlePropertyGet("Text");   //текст ячеек
         String v_s = Trim(String(v));

//Убираю символ крнца строки
char *p;
char buf[256];
  buf[0] = 0;
  p = strtok(v_s.c_str(), "\r\a");
  while (p) {
    strcat(buf, p);
    p = strtok(NULL, "\r\a");
  }
  String v_str = String(buf);


         s +="|" + v_str;
    }
         pRich->Lines->Add(s);   //вставляю в компонент
  }

При таком коде у меня идет накопление текста из ячеек: в первой строке компонента располагается текст из 1 ячейки, во второй строке - из 1 и 2, в третьей строке - из 1,2,3 и т.д. пока не переберет все строки и столбцы.
Как мне исправить ошибку?:-?
2.2K
23 ноября 2005 года
123tk
57 / / 28.06.2003
Символ конца строки это вроде \r
Код:
for (int i=1; i <=rows_count; i++)
{
  AnsiString s = "| ";
  for(int j=1; j <=col_count; j++)
  {
    Variant Cell3 = Tables3.OleFunction("Cell", i, j);
    Variant v = Cell3.OlePropertyGet("Range").OlePropertyGet("Text");   //текст ячеек
    String v_s = Trim(String(v));

    //Убираю символ конца строки
    int p = v_s.Pos("\r");
    while(p)
    {
      v_s = ' ' ;
      p = v_s.Pos("\r");
    }
    s += Trim(v_s) + " | ";
  }
  pRich->Lines->Add(s);   //вставляю в компонент
}
1.2K
23 ноября 2005 года
richel
142 / / 20.01.2005
Цитата:
Символ конца строки это вроде \r


Вы правы. Вот только когда формируется сообщение, кусочек "\r\a" неправильно записался.
Свои ошибки вижу. Не догадалась. Спасибо. Все отлично заработало!
:)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог