Форум: "Основная";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
Внизstr(255) в строку нужно различать содержание её внутренних тегов. Найти похожие ветки
← →
Officeman (2003-12-16 11:07) [0]Доброе время суток, уважаемые мною друзья!
Существует некоторая строка str(255)
Нужно различать содержание её внутренних тегов. пример:
str:="[sys]www=1;admin=1[/sys] [pic]путь к картинке[/pic] [txt]некоторая строка[/txt]";
// Различаем и получаем: "Button1OnClick"
substr1:="www=1;admin=1";
substr2:="путь к картинке";
substr3:="некоторая строка";
Примерно также работает html (ГиперТекст)
Как наиболее корректно это сделать?
Прошу помочь с листнгом кода.
← →
Ega23 (2003-12-16 11:12) [1]А str у тебя константа, или меняться будет? Это я к тому, что если будет меняться, то в 255 может и не влезть...
← →
bushmen (2003-12-16 11:12) [2]Наверное, что-нить подобное:
i := InStr(str, "]");
str1 := copy(str, i+1, length(str)-i);
i := InStr(str, "[");
substr1 := copy(str1, 1, i-1);
и т.д...
← →
Officeman (2003-12-16 15:19) [3]? зятрудняюсь! пожалуйста опишите поподробнее.
да строка имеет разные размеры(длину), когда сказал 255, я имел виду что будут символы и цифры и др.спец.знаки.
я незнаю как это реализовать. мжет у кого была похожая задача?
пишите. может исходник есть? zeram@hotmail.ru
с Уважением, ОфисМен
← →
Ega23 (2003-12-16 15:33) [4]Тэги идут подряд, или могут быть вложенными?
Т.е. на примере скобок
(abc){def}[ghi] или может быть ({abc} [def])
← →
Polevi (2003-12-16 16:02) [5]напоминает xml
меняем
[ на <
] на >
далее любым xml парсером
только рутовый тег нужно добавить
← →
Officeman (2003-12-17 00:25) [6]toEga23
Да как удобно. влоджение необязательно. как проще. просто нужно параметры передавать. с тегами удобнее тем, что можно писать их в разной последовательности.
to Polevi
ээээ... =)
с Уважением, надеюсь и верю, ОфисМен
← →
Palladin (2003-12-17 00:31) [7]напоминает ini
убираем элементы [/]
добавляем имена к неименованным параметрам
делаем перенос строк где надо
далее любым объектом TIniFile
только в файл сохранить надо
:))
← →
Slym (2003-12-17 07:39) [8]
function GetValue(Tag,Source:String):string;
var
bs,es:string;
b,e:integer;
begin
result:="";
bs:="["+Tag+"]";
es:="[/"+Tag+"]"
while Length(Source)>0 do
begin
b:=Pos(bs,Source);
if b=0 then break;
e:=Pos(es,Source);
if e=0 then break;
if b>e then break;
result:=result+copy(Source,b+Length(es),e-b-Length(es));
Delete(Source,1,e);
end;
end;
Usage
const s="[sys]www=1;admin=1[/sys] [pic]путь к картинке[/pic] [txt]некоторая строка[/txt] [sys]www2=2;admin2=1[/sys]";
var r:string;
begin
r:=GetValue("sys",s);
r="www=1;admin=1www2=2;admin2=1"
Код не проверял
← →
Slym (2003-12-17 07:45) [9]И где гарантия что в [txt]некоторая строка[/txt] не будет такая
[txt]"некоторая [/txt] строка"[/txt]
← →
Officeman (2003-12-17 08:25) [10]Благодарствую, только код проверить нужно на корректность.
to Slym
всё будет по правилам. тег открылся - тег закрылся.
надеюсь твой код работает.
← →
Officeman (2003-12-17 08:30) [11]Проект. Интренет Магазин - пишу на дельфи. в зависимости от настроек - профиля пользователя буду передавать различные параметры одной строкой. поэтому хотел использовать теги, котому как парамерт может передаваться один, а может 50 штук. с тегами в этом случае удобно работать - дают гибкость сожержания параметров. ini - меня неустраивает.
с Уважением, ОфисМен
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c