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

Вниз

загрузка HTML в МЕМО   Найти похожие ветки 

 
Sash ©   (2004-08-17 08:44) [0]

Здравствуйте! На форме лежит 2 мемо. В 1-ый загружаю вордовский документ сохраненный как веб страница с фильтром и вижу хтмл код:
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
<meta name=Generator content="Microsoft Word 10 (filtered)">
<title>Jefuerfcvfdnvb urtbgvkrtg</title>
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
@page Section1
{size:595.3pt 841.9pt;
margin:2.0cm 42.5pt 2.0cm 3.0cm;}
div.Section1
{page:Section1;}
-->
</style>
</head>
<body lang=RU>
<div class=Section1>
<p class=MsoNormal><span lang=EN-US>Jefuerfcvfdnvb urtbgvkrtg</span></p>
<p class=MsoNormal><span lang=EN-US>Rtkgh vhjrtbv  uihgurtg</span></p>
<p class=MsoNormal><span lang=EN-US>R tjg uithjrtg</span></p>
<p class=MsoNormal><span lang=EN-US>Rtgi wrgug54</span></p>
<p class=MsoNormal><span lang=EN-US>Grtg nrtughrthguirt897t8jtrhew54f</span></p>
<p class=MsoNormal><span lang=EN-US> </span></p>
</div>
</body>
</html>

Во втором мемо мне нужно получить следующее:
<p>Jefuerfcvfdnvburtbgvkrtg</p>
<p>Rtkghvhjrtbvuihgurtg</p>
<p>R tjg uithjrtg</p>
<p>Rtgiwrgug54</p>
<p>Grtgnrtughrthguirt897t8jtrhew54f</p>

т.е. удалить все теги кроме тега <p> и </p>.
Подскажите пожалуйста, как это сделать?


 
Fredy314 ©   (2004-08-17 08:57) [1]

Сканируй все строки на поиск начала тега "<" потом смотри следующие буквы если "Р>" или "P " значит ето твой тег иначе пропусти его, внутри тега  тоже нужно смотреть чтоб пропустить всё лишнее.
возможно pos("<",Memo1.Lines[i]) тебе пригодится.


 
Sash ©   (2004-08-17 09:03) [2]

2 Fredy314 ©   (17.08.04 08:57) [1]
Писал вот так, не идет

Flag:=False;
teg:="p>";
for i:=0 to Memo1.Lines.Count-1 do
 begin
 if Flag=True then  Memo2.Lines.Add( Memo1.Lines[i]);
   if pos(teg, Memo1.Lines[i])<>0 then
    begin
     if Flag=False then Flag:=True  else
     if Flag=True then Flag:=False;
     if Flag=True then  Memo1.Lines.Add(Memo1.Lines[i]);
    end;
 end;


еще писал teg:=<p, тоже не то. Если большие документы, то много строк вообще пропадают...


 
Sash ©   (2004-08-17 09:06) [3]

т.е.
if Flag=True then  Memo2.Lines.Add(Memo1.Lines[i]);
опечатался...:)


 
KSergey ©   (2004-08-17 09:21) [4]

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

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

меняем
    if Flag=False then Flag:=True  else
    if Flag=True then Flag:=False;

на
    Flag := NOT Flag;

меняем везде
if Flag=True then
на
if Flag then

Выделенное жирным напрасно сдвинуто, оно не является вложенным блоком.

Flag:=False;
teg:="p>";
for i:=0 to Memo1.Lines.Count-1 do
begin
if Flag=True then  Memo2.Lines.Add( Memo1.Lines[i]);
  if pos(teg, Memo1.Lines[i])<>0 then
   begin
    if Flag=False then Flag:=True  else
    if Flag=True then Flag:=False;
    if Flag=True then  Memo1.Lines.Add(Memo1.Lines[i]);
   end;

end;


 
Kerk ©   (2004-08-17 09:22) [5]

Так... набросал.. чего-то такое...
Flag := True; p := False;
s := Memo2.Lines.Text; s2 := "";
SetLength(s,Length(s)+1);
for I := 1 to Length(s) do
begin
 if s[i] = "<" then
   if s[i+1] = p then
   begin
     p := True;
   end else Flag := False;
 if s[i] = ">" and (not p) then Flag := True else
   if Flag then s2 := s2 + s[i];
 if s[i] = ">" then p := False;
end;
SetLength(s2,Length(s2)-1);


 
Sash ©   (2004-08-17 09:56) [6]

2Kerk ©   (17.08.04 09:22) [5]
2KSergey ©   (17.08.04 09:21) [4]
Сейчас попробую, спасибо за внимание!



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

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

Наверх




Память: 0.46 MB
Время: 0.036 c
1-1092200722
lightix
2004-08-11 09:05
2004.08.29
Печать на матричный принтер из RichEdit


3-1091557575
Elast
2004-08-03 22:26
2004.08.29
Проблема с кириллицей


3-1091687674
РВА
2004-08-05 10:34
2004.08.29
Постаничное суммирование в FRep


3-1091686564
strelok-47
2004-08-05 10:16
2004.08.29
Об отрисовке grid а


1-1092160559
4МО
2004-08-10 21:55
2004.08.29
Реестр





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский