PDA

View Full Version : Extract کردن یک جمله از یک متن مانند :



koosha system
شنبه 31 اردیبهشت 1384, 20:08 عصر
دوستان عزیز:
من نیاز به یک الگوریتم و کد دارم تا بتونم یک جمله را از یک متن بیرون بکشم.
با یک مثال همه چی روشن می شود:

فرض می خواهم جمله ی بین <body> و </body> را بیرون بکشم.
مثال:
<body>this is a test</body>

خروجی=this is a test

امیدوارم به من کمک کنید.

Developer Programmer
شنبه 31 اردیبهشت 1384, 21:06 عصر
با تابع Pos بدنبال رشته <body> و </body> بگردید و توسط تابع Copy و یا توباع دیگر تمام کراکترهای بین رو بخونید...
ممکنه مجبور بشید از Parser استفاده کنیدر

Delphi Skyline
شنبه 31 اردیبهشت 1384, 22:12 عصر
اینو بخون هم اینو متوجه میشی و هم نوشتن برنامه نویسی ساده (مفسر )

koosha system
چهارشنبه 04 خرداد 1384, 17:13 عصر
آقای delphi skyline عزیز.
مشکل من این نبود.شما سوال من رو به درستی نفهمیدید.

سوال به طور دقیق:
<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
hello
</html>
<head>
</head>
<body>test</body>
<body>
<font XXX></font>

خروجی = test

koosha system
چهارشنبه 04 خرداد 1384, 17:15 عصر
آقایون و ...
اگر کسی می تواند کمکی بکند سپاس گذار می شویم.

Developer Programmer
چهارشنبه 04 خرداد 1384, 17:18 عصر
اولا ارسال پستهای متعدد به منظور بالا اوردن یه تاپیک ممنوعه
ثانیا جوابتون همونه که من و مهرداد گفتیم...
خوش باشین

koosha system
چهارشنبه 04 خرداد 1384, 17:19 عصر
:confy2: شما همیشه بالایید؟؟؟

SalarSoft
چهارشنبه 04 خرداد 1384, 17:28 عصر
راه ساده آن حذف کردن تگ هاست با دستور ReplaceStr.
اما این کار انعطاف پذیری ندارد. یعنی برای تگ هایی مانند زیر کار نخواهد کرد: <span dir=ltr>&lt;body rightmargin=0></span>

بهتر است با تعیین محل تگ آغازین body یعنی <span dir=ltr>&lt;body </span>و سپس تعیین محل <span dir=ltr>></span> و سپس تعیین محل تگ پایانی یعنی <span dir=ltr>&lt;/body></span> متن مابین آنها را انتخاب کنی. :)

majid_afra222
چهارشنبه 04 خرداد 1384, 18:26 عصر
سلام
از کامپوننتهای مجانی برای پارس صفحات html استفاده کن٬‌ تعدادشون هم زیاده. تو google یه سرچ بکن پیدا می کنی.
اگه نشد بگو٬‌الان نمیدونم کجا کپی اش کردم.

majid_afra222
چهارشنبه 04 خرداد 1384, 19:19 عصر
سلام
من کامپوننت رو پیدا کردم و یه مثال کوچیک هم برات نوشتم.
امیدوارم بدردت بخوره.

Delphi Skyline
چهارشنبه 04 خرداد 1384, 21:54 عصر
نمی دونم دیگه چی بگم .
خوب یه کاری کن .
اول Lefttrim و دوم Righttrim .
با این دستور MEMO1 رو LRTRIM کن :


procedure TForm1.Button1Click&#40;Sender&#58; TObject&#41;;
var i,a&#58;integer;s,j&#58;string;
begin
for i&#58;=0 to memo1.lines.Count-1 do
begin
s&#58;=memo1.Lines&#91;i&#93;;
if s='&lt;body>' then
begin
for a&#58;=i+1 to memo1.lines.Count-1 do
begin
if not&#40;memo1.Lines&#91;a&#93;='&lt;/body>'&#41; then
j&#58;=j+#13#10+memo1.Lines&#91;a&#93;
else
break;
end;
showmessage&#40;j&#41;;
end;
end;
end;


اینم کدش بود .

majid_afra222
چهارشنبه 04 خرداد 1384, 22:49 عصر
سلام
کدی که ارسال کردم تمام کارهای لازم برای پارس HTML رو انجام میده٬‌حداقل نگاش میکردی بعد کدت رو می نوشتی.

Developer Programmer
پنج شنبه 05 خرداد 1384, 13:21 عصر
اول Lefttrim و دوم Righttrim .
به جای چپ و راست کردن یکدفعه بنویس Trim
---

Delphi Skyline
پنج شنبه 05 خرداد 1384, 16:33 عصر
به جای چپ و راست کردن یکدفعه بنویس Trim
آره . راحت تر میشه . متشکرم .

kamyar_kimiyabeigi
شنبه 21 خرداد 1384, 15:17 عصر
با تابع Pos بدنبال رشته &lt;body> و &lt;/body> بگردید و توسط تابع Copy و یا توباع دیگر تمام کراکترهای بین رو بخونید...
ممکنه مجبور بشید از Parser استفاده کنیدر
آقای Afshin_Zavar کاملا درست جواب دادن