Ознакомьтесь с нашей политикой обработки персональных данных
23:41 

Программирование на Си с помощью Excel

zHz00
Описан забавный приём полу-автоматического создания исходного текста с применением Microsoft Excel.

Ну это вообще. Допустим есть что-то вроде:

struct q
{
int field1;
double field2;
int field3;
int field4;
...
int fieldN;
};


А надо сделать что-то вроде:

printf("%d\n",t.field1);
printf("%lf\n",t.field2);
printf("%d\n",t.field3);
printf("%d\n",t.field4);
...
printf("%d\n",t.fieldN);

где t -- структура типа q. Названия полей не такие удачные как тут, а рандомные.
Что мы делаем? Мы открываем эксель. Вставляем туда (Правка->Специальная вставка; после этого поводите мышью около правого нижнего угла выделения, там будет "смарт-тег"; откройте его и выберите "мастер импорта текст", там выберите разделитель пробел (или что у вас там)):


int field1;
int field2;
int field3;
int field4;
...
int fieldN;

Тогда в первой колонке будет тип, а во второй -- имя поля. Проводим автозамену (Ctrl+H) с удалением точек с запятой. Оттаскиваем колонки на одну вправо, в самой левой пишем:
printf(".

Потом тиражируем (если потянуть за угол клетки, содержимое будет копироваться на всё выделение). Потом автозаменой все int -> %d, double -> %lf. Потом оттаскиваем колонку с названиями полей, между ней и тем что справа вставлеем:
\n",t.

А в самую правую (пока пустую) колонку пишем:
);

Получится примерно вот такое:

Что дальше? Надо это как-то слить. Выделяем, копируем и вставляем в Блокнот (notepad.exe). Получается:

printf(" %d ",t. field1 );
printf(" %lf ",t. field2 );
printf(" %d ",t. field3 );
printf(" %d ",t. field4 );
printf(" %d ",t. fieldN );

Почти. Осталось убрать табуляции. Выделяем мышкой один из символов (он невидимый), копируем, проводим автозамену на пустое место. Вуаля:

printf("%d",t.field1);
printf("%lf",t.field2);
printf("%d",t.field3);
printf("%d",t.field4);
printf("%d",t.fieldN);


Разумеется, для пяти полей это нецелесообразно. Однако данный метод неоднократно применялся мной для гораздо большего числа полей и сложных конечных конструкциях.

@темы: Программирование, Статьи

URL
Комментарии
2012-03-24 в 00:13 

0_0

Программисты - не люди. Они - пришельцы с другой планеты, нет, из другой галактики.

URL
2012-03-24 в 19:52 

Гость, нет, почему? Я так табличку с акселерометрами делал в дипломе и потом в LaTeX переводил. Да и в случае со структурами, в которых настройки программы хранятся очень полезно.

Нормальное решение.

// ssvda

URL
2012-03-24 в 19:54 

Да, небольшое добавление. LibreOffice/OpenOffice.org для этих целей лучше предназначен. Там средство преобразования текста в таблицу на мой взгляд более гибкое.

// ssvda

URL
2012-03-25 в 09:55 

Няшно)

URL
2013-01-12 в 09:35 

korrshun
дрыхнущий
я на такое дело обычно какую-нибудь фигнюшку на питоне пишу =)

   

Untitled

главная