دوستان سلام
لطفا اگه ممکنه راهنمایی کنید.
چطور می تونم یک html رو به صورت متنی در بیارم (بدون تگ)
فقط متن صفحه رو داشته باشم
ممنون
دوستان سلام
لطفا اگه ممکنه راهنمایی کنید.
چطور می تونم یک html رو به صورت متنی در بیارم (بدون تگ)
فقط متن صفحه رو داشته باشم
ممنون
سلام
من فكر ميكنم سوال شما هم ناقصه؛ مثلا ياهو يا همين سايت: كجاش رو ميخواي به صورت متنی در بیاري يا؟فقط متن صفحه رو داشته باشم
منظورت اينه كه فقط ميخواي تگها رو ورداري يا ميخواي يه براوزر بنويسي؟ اگه اولي رو بخواي زياد سخت نيست و هرچي <...> ديدي حذف ميكني ولي خيلي به نظر كار بيربطي مياد و نتيجه يه چيز خيلي گنگ و بيمعني اي ميشه؛ چون ممكنه متني كه شما ميگي صدها نوع مختلف نمايش داده بشه مثلا تو Table، body و يا انواع تركيبهاي tr و td و ... مگه اينكه مطمئن باشي كه 1 فرمت ثابت داري كه بحثش جداست.
در حالت دوم هم browser خود دلفي كه تقريبا كامله (Internet->TWebBrowser) و ميتوني هرجوري بخواي واسه خودت تغييرش بدي البته فقط اين نيست خيلي امكانات ديگه اي هم هست كه اگه دقيقا بگي مشكل چيه بهتر ميتونم راهنمايي كنم
سلام
ممنونواز راهنمایی شما
من یک صفحه دارم به این ادرس که اطلاعات هواشناسی داره
http://www.rap.ucar.edu/weather/surf...etars=Retrieve
در حقیقت من می خوام که ای صفحه رو به صورت متنی ذخیره کنم بعد اجزای اون رو جدا کنم
ممنون میشم راهنمایی کنید
با سلام :
اگه فرمت HTML واستون کافیه یعنی میخواین با فرمت HTML محتویات نمایش داده شده رو ذخیره کنید یا بریزینشون تو یه Stream میشه این توابع رو استفاده کرد توجه کنید که باید ActiveX رو به use هات اضافه کنی؛ این کد خیلی جاها هست ولی فکر کنم تا اونجاییکه یادم میاد من این توابع رو تو http://delphi.about.com دیدم :
procedure WB_SaveAs_HTML
(WB:TWebBrowser; const FileName : string);
var
PersistStream: IPersistStreamInit;
Stream: IStream;
FileStream: TFileStream;
begin
if not Assigned(WB.Document) then
begin
ShowMessage('Document not loaded!');
Exit;
end;
PersistStream := WB.Document as IPersistStreamInit;
FileStream := TFileStream.Create(FileName, fmCreate);
try
Stream := TStreamAdapter.Create(FileStream, soReference)
as IStream;
if Failed(PersistStream.Save(Stream, True)) then
ShowMessage('SaveAs HTML fail!');
finally
FileStream.Free;
end;
end; (* WB_SaveAs_HTML *)
function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean;
var
ps: IPersistStreamInit;
ss: TStringStream;
sa: IStream;
s: string;
begin
ps := WebBrowser.Document as IPersistStreamInit;
s := '';
ss := TStringStream.Create(s);
try
sa := TStreamAdapter.Create(ss, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
if Result then ACode.Add(ss.Datastring);
finally
ss.Free;
end;
end;
ولی اگه فقط body رو میخواین یکم باید بیشتر زحمت بکشید! شوخی کردم قبل از ما زحمتشو کشیدن و یه کلاس کامل ازش ساختن که یه نمونه دمو رو میتونی تو فایل ضمیمه ببینی. { توضیحات بیشتر : http://www.delphidabbler.com/articles?article=14 }
باتشکر
موفق باشید
آخرین ویرایش به وسیله Saeed_m_Farid : شنبه 07 دی 1387 در 16:54 عصر دلیل: طبق معمول!
اگر فقط میخواید متن صفحه را بدست بیارید:
var
Str : TStringList;
begin
Str := TStringList.Create;
try
Str.Text := Variant(WebBrowser1.Document).Body.InnerText;
Str.SaveToFile('C:\MyFile.txt');
finally
Str.Free;
end;
end;
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
با سلام
ممنون از کد و توضیحاتتون
اما یه سوآل
در دلفی اگه که بخوایم هر خط رو دریک خانه از آرایه و یا یک متغیر بریزیم چه جوری میشه مثلا همین کد متن صفحه رو به صورت خط به خط میاره چه طوری میشه هر خط رو در یک خانه از آرایه ریخت .
با تشکر
ربطی به این تاپیک نداشت، در هر حال...در دلفی اگه که بخوایم هر خط رو دریک خانه از آرایه و یا یک متغیر بریزیم چه جوری میشه مثلا همین کد متن صفحه رو به صورت خط به خط میاره چه طوری میشه هر خط رو در یک خانه از آرایه ریخت .
در کد موجود در پست شماره 5، اگر بخوایم خط اول متن را در متغیر MyStr بریزیم:
MyStr := Str[0];
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
حالا اگر بخواهید بعد از تغییرات متن توسط کاربر دوباره آن را در فایل html (بروز کردن محتوای متن فایل html مطابق با خواسته کاربر) قرار دهید و فایل را دوباره ذخیره کنید تا در صورت ارجاع به فایل متن جدید نمایش داده شود (ویرایشگر html مانند فرانت پیج)اگر فقط میخواید متن صفحه را بدست بیارید:
IE فقط ابزار نمایش صفحات وب هست، نه ویرایش آنها؛ اگر میخواید صفحه ایی را بعد از نمایش به کاربر ویرایش کنید، با توجه به اینکه فایل های HTML فایل های متنی معمولی هستند، می تونید فایل مربوطه را در یک Memo یا RichEdit یا هر ویرایشگر دیگه ایی باز کنید، تغییرات مورد نظرتان را اعمال کنید، و فایل را مجددا ذخیره کنید. با Refresh کردن صفحه در WebBrowser (که مبتنی بر IE هست)، تغییرات شما هم نمایش داده میشه.حالا اگر بخواهید بعد از تغییرات متن توسط کاربر دوباره آن را در فایل html (بروز کردن محتوای متن فایل html مطابق با خواسته کاربر) قرار دهید و فایل را دوباره ذخیره کنید تا در صورت ارجاع به فایل متن جدید نمایش داده شود (ویرایشگر html مانند فرانت پیج)
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.