Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];

Вниз

директива INCLUDE своими силами, или Собираем файл из шаблонов.   Найти похожие ветки 

 
NA   (2002-10-19 14:13) [0]

Вот такая задача возникла, с какой стороны лучше подобраться? При этом:
а)вставка очередного внешнего файла может производиться в разрыв строки;
б)не должно быть ограничений длины в 255 знаков (string);
в)вставки могут быть вложенными.

Просится создать MemoryStream, по идее. Но, опять же - как правильнее подобраться? И - может, есть пример, от которого можно оттолкнуться? Мне вроде не попался пока :(


 
TTCustomDelphiMaster   (2002-10-19 14:40) [1]

Для решения такой задачи подойдет рекурсия.

procedure IncludeFile(InStream, OutStream: TStream; Nvl: word);
var
NewInStream;
begin
// Защита от зацикливания
if Nvl >= MaxNvl then
Exit;
// Перемещение данных из InStream в OutStream с одновременной
// проверкой наличия директив include
...
// Если найдена директива include вставляем файл с этого места
if FindInclude then
try
NewInStream := TFileStream.Create(GetNewFileName(), fmOpenRead or fmShareExclusive); // Защита от зацикливания. Если файл открыт возникнет исключительная ситуация.
IncludeFile(NewInStream, OutStream, Nvl + 1);
NewInStream.Free;
except
end;
end;


 
Оливейра   (2002-10-19 15:26) [2]

В свое время у меня примерно такая же задача была - поделка для построения многоязычного сайта, UTF-8 в конечном HTML не допускался, некоторые части шаблона документа были языкозависимыми, некоторые - нет.
Схему документа хранил в XML.
<?xml version="1.0" encoding="utf-8"?>
<part type="independent" filename="head.inc"/>
<part type="dependent">
<subpart lang="en" filename="titleeng.inc"/>
<subpart lang="fr" filename="titlefr.inc"/>
</part>
...

И окончательный HTML генерил парсингом.





 
NA   (2002-10-20 11:17) [3]

Спасибо! Я обрел ума, оба варианта интересны.

2Оливейра ©: какой циничный и одновременно простой способ 0:-)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.012 c
4-101589
Klev.J
2002-09-09 19:30
2002.10.31
Hints исключительно на WIN API


1-101257
Squ
2002-10-22 07:26
2002.10.31
Бегущая строка в about box ?


1-101243
Wolf226
2002-10-22 09:27
2002.10.31
Склонение падежей


3-101066
BJValentine
2002-10-11 20:49
2002.10.31
Помогите...


3-101111
officeman
2002-10-09 22:26
2002.10.31
Как КОРРЕКТНО разместить картинку в DBGRID-е ???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский