Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > сохранение данных в файл аналогично таблице


Автор: gordmiand 17.9.2008, 11:32
я сохраняю данные в текстовый файл из грида:

Код


  AnsiString s[100];

         for (int i = 0; i <SG->RowCount; i++)
            for (int j = 0; j < SG->ColCount; j++)
                 s[i] += SG->Cells[j][i] + "\t";



где в виде разграничителя данных вставляю знак табуляции.....но как с наименьшими затратами сделать так, чтобы данные были точно друг под другом (как в гриде)? то есть проблема с переменной длиной данных в каждой ячейке грида...
надо сделать (пример):

1                 2              3
машина     стул         стол
дом          кровать    окно 


Автор: Alca 18.9.2008, 09:00
Можно сохранять в HTML: 
Код

<table>
<!--...<th>...->
<tr><td><b>1</b></td><td><b>2</b></td><td><b>3</b></td></tr>
<tr><td>машина</td><td>стул</td><td>стол</td></tr>
<tr><td>дом</td><td>кровать</td><td>окно</td></tr>
</table> 

Автор: gordmiand 18.9.2008, 10:53
Alca: а можно как-нибудь попроще - "стандартными методами программирования", без заморочек с HTML?

Автор: Dem_max 18.9.2008, 10:58
gordmiand,
c html будет попроще, тупая обертка кодов вокруг выводимых данных 

Автор: mrbrooks 18.9.2008, 14:31
gordmiand,  попробуй использовать вывод в стиле С++ (то бишь с использованием ofstream)

Автор: gordmiand 20.9.2008, 00:33
mrbrooks: я с offstream не работал...можно примерчик?

Автор: mrbrooks 20.9.2008, 08:31
gordmiand,  да там все просто как две копейки. 

Код

#include<fstream>

        std::ofstream out("temp.txt");
        if (out) 
        {
        out << "123456" << '\t' << 258 << '\t' << 987654321 << '\n';
        out << "123" << '\t' << 258 << '\t' << 987654321 << '\n';
        out << "12" << '\t' << 258987 << '\t' << 987654321 << '\n';
        out.close();
        }

Автор: volvo877 20.9.2008, 12:11
Цитата(mrbrooks @  20.9.2008,  08:31 Найти цитируемый пост)
да там все просто как две копейки. 

С такими данными и http://forum.vingrad.ru/index.php?showtopic=227820&view=findpost&p=1638863, ранее предложенный автору, корректно отрабатывает... 

Ты так попробуй:
Код
        out << "123456" << '\t' << 258 << '\t' << 987654321 << '\n';
        out << "123" << '\t' << 258 << '\t' << 987654321 << '\n';
        out << "12" << '\t' << 258987 << '\t' << 987654321 << '\n';
        out << "1234567890" << '\t' << 258987 << '\t' << 987654321 << '\n';
Что, уже смещение появилось? Вот автору и хочется, чтоб его не было, собственно.

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