Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Генерация текста из шаблона с использованием C# 
V
    Опции темы
WSairus
Дата 28.5.2013, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.4.2010

Репутация: нет
Всего: нет



Доброе время суток, прошу подсказать не слишком сложное решение для следующей задачи: нужно из программы на C# обрабатывать текстовые шаблоны, при этом используя значения переменных и еще некоторые синтаксические фишки. Файл должен быть внешним и загружаться по выбору. В шаблоне могут использоваться логические выражения, циклы, блоки - минимальный набор языка программирования. Пример шаблона:

Код

<html>
<head><title><#= user.Name #></title></head>
<body>
<#= if (user.Param1 != null) #>
   <h1>Заголовок по условию</h1>
<p>Некоторый текст с использованием переменных <#= user.Param1 #> и <#= user.Param2 #>.</p>
</body>
</html>


Соответственно в программе:

Код

string text = File.ReadAllText("Code.txt");
string result = XXX.TransformText(text, user);


Вроде есть генератор T4, но как загрузить произвольный файл я не разобрался. Есть ли готовые решения для подобных задач.
PM MAIL   Вверх
gambit
Дата 29.5.2013, 11:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 5
Всего: 40



Посмотри на хабре статья была, про юзание razor в отрыве от mvc

Добавлено через 23 секунды
http://habrahabr.ru/post/173923/
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 29.5.2013, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Да собственно вот тема
http://msdn.microsoft.com/en-us/library/bb126519.aspx
Но это возможно там, где на компе студия установлена, отдельно от студии движок вроде не поставляется.
Есть поддержка T4 в SharpDevelop и MonoDevelop, в силу оупенсорсности проектов их библиотеки использовать можно, но насчет туториалов по поводу того, как это сделать, ничего сказать не могу, возможно придется разбираться методом научного тыка.

Из общедоступных инструментов могу порекомендовать XSLT, во фреймворке есть все для обработки этого языка, а возможности у него очень неплохие, к тому же его расширять кодом можно, в том числе на C#.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM   Вверх
diadiavova
Дата 29.5.2013, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142





--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
WSairus
Дата 30.5.2013, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.4.2010

Репутация: нет
Всего: нет



gambit, большое спасибо. Использовал это решение - работает идеально. Только велосипедов делать не стал, а использовал RazorEngine - компиляция и выполнение в 1 строку кода + поддержка многопоточности.

diadiavova, проблема была в том, что нужно загружать внешний файл и обработать его уже после компиляции. Как это сделать - я не разобрался, да и синтаксис у Razor намного компактнее.
PM MAIL   Вверх
diadiavova
Дата 30.5.2013, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Цитата(WSairus @  30.5.2013,  14:49 Найти цитируемый пост)
 проблема была в том, что нужно загружать внешний файл и обработать его уже после компиляции. 

Моя первая ссылка была как раз об этом, там дальше есть ссылка на пошаговое руководство
http://msdn.microsoft.com/en-us/library/bb126579.aspx
Цитата(WSairus @  30.5.2013,  14:49 Найти цитируемый пост)
Как это сделать - я не разобрался, да и синтаксис у Razor намного компактнее. 

Ну, если вариант Гамбита устроил - хорошо, я просто предложил варианты.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0709 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.