# Native Code > برنامه نویسی در 6 VB > برنامه نویسی مرتبط با شبکه و وب در VB6 >  پیدا کردن ایمیل های داخل سایت

## behzad_vb.net

سلام دوستان عزیز من میخوام یک ربات طراحی کنم داخل یک سایت ایمیل را  لیست کند یعنی خودش تشخیص بده ایمیل را با تشکر از همه

----------


## مهران رسا

خب ، مشکل کجاست ؟

----------


## behzad_vb.net

> خب ، مشکل کجاست ؟



مشکل اینجاست که نمیدونم چطوری ان کارو بکنم بلد نیستم با کامپوننت مرورگر کار کنم میخوام یک استارت و پایه بدید باید چیکار کنم با تشکر

----------


## مهران رسا

متاسفانه من الآن VB روی سیستمم نصب نیست که واست برنامه رو بنویسم . اما شما باید از رویداد DocumentCompeleted کامپونتت مرورگر استفاده کنی . تا اونجایی که یادمه این رویداد یک پارامتر حاوی سورس صفحه در اختیار شما قرار میده که در واقع تمامی کد های HTML صفحه رو میتونید در قالب یک رشته دریافت کنید . بعد از دریافت رشته باید با استفاده از توابع Instr ، Mid و یک حلقه While ، ایمیل ها رو استخراج کنید .

اگه نمیدونی چطور اینکار رو انجام بدی اینجا رو یک نگاه بنداز : http://www.ozgrid.com/forum/showthre...t=16006&page=1یا توی گوگل سرچ کن : VB - Extract Email addresses from a web page

----------


## behzad_vb.net

> متاسفانه من الآن VB روی سیستمم نصب نیست که واست برنامه رو بنویسم . اما شما باید از رویداد DocumentCompeleted کامپونتت مرورگر استفاده کنی . تا اونجایی که یادمه این رویداد یک پارامتر حاوی سورس صفحه در اختیار شما قرار میده که در واقع تمامی کد های HTML صفحه رو میتونید در قالب یک رشته دریافت کنید . بعد از دریافت رشته باید با استفاده از توابع Instr ، Mid و یک حلقه While ، ایمیل ها رو استخراج کنید .
> 
> 
> اگه نمیدونی چطور اینکار رو انجام بدی اینجا رو یک نگاه بنداز : http://www.ozgrid.com/forum/showthre...t=16006&page=1یا توی گوگل سرچ کن : VB - Extract Email addresses from a web page




دقیقا مشکلم استخراج ایمیل از داخل کد html است

----------


## behzad_vb.net

> متاسفانه من الآن VB روی سیستمم نصب نیست که واست برنامه رو بنویسم . اما شما باید از رویداد DocumentCompeleted کامپونتت مرورگر استفاده کنی . تا اونجایی که یادمه این رویداد یک پارامتر حاوی سورس صفحه در اختیار شما قرار میده که در واقع تمامی کد های HTML صفحه رو میتونید در قالب یک رشته دریافت کنید . بعد از دریافت رشته باید با استفاده از توابع Instr ، Mid و یک حلقه While ، ایمیل ها رو استخراج کنید .
> 
> 
> اگه نمیدونی چطور اینکار رو انجام بدی اینجا رو یک نگاه بنداز : http://www.ozgrid.com/forum/showthre...t=16006&page=1یا توی گوگل سرچ کن : VB - Extract Email addresses from a web page




من از زیاد متوجه نشدم لطف میکنید بیشتر راهنمای کنید

----------


## مهران رسا

دوست عزیز روش کار رو با دلفی واست پیاده کردم . زحمت تبدیلش به VB با خودت :
procedure TForm1.ExtractEmails(StrContent: string);
var
  i, r, P1, P2, DContinue: integer;
  Email, StrPre, StrPos: string;
begin
  StrContent := StringReplace(StrContent, #13#10, ' ', [rfReplaceAll]);
  StrContent := StrContent + #13#10;
  i := 1;
  while (i <= length(StrContent)) do
  begin
    r := PosEx('@', StrContent, i);
    if r > 0 then
    begin
      StrPre := copy(StrContent, 1, r - 1);
      P1 := r + 1;
      StrPos := copy(StrContent, P1, length(StrContent));
      P2 := pos(' ', StrPos) - 1;
      //
      StrPre := ReverseString(StrPre);
      StrPre := ReverseString(copy(StrPre, 1, pos(' ', StrPre) - 1));
      StrPos := copy(StrPos, 1, P2);
      // Catch the email
      Email := StrPre + '@' + StrPos;
      if pos('.', Email) > 0 then
        ListBox1.Items.Add(Email);
      DContinue := P1 + P2;
    end
    else
    begin
      Break;
    end;
    // Continue searching
    i := DContinue + 1;
  end;
end;

معادل دستورات در VB :

Pos , PosEx =InstrReverseString = StrReverseCopy = MidStringReplace = Replace#13#10 = VbCrlf
ضمناً تا جاییکه یادمه توی VB تابعی بود با اسم InstrRev که اگه از اون استفاده کنی دیگه نیازی به Reverse کردن String نیست .

موفق باشی

----------

