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); //вставляю в компонент
}
Значения ячеек таблицы в одну строку
Есть вордовская таблица с 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 |
...
| 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); //вставляю в компонент
}
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 и т.д. пока не переберет все строки и столбцы.
Как мне исправить ошибку?:-?
Символ конца строки это вроде \r
Цитата:
Символ конца строки это вроде \r
Вы правы. Вот только когда формируется сообщение, кусочек "\r\a" неправильно записался.
Свои ошибки вижу. Не догадалась. Спасибо. Все отлично заработало!
:)