View Full Version : در آوردن رشته هایی که با http:// شروع و به PDF ختم میشوند
2arash2
چهارشنبه 07 تیر 1391, 20:52 عصر
چگونه می تونم از یک متن متنی رو که گفتم دربیارم؟تو جای دیگه بهم گفتم که باید از Regex استفاده کنم ولی من هرکاری کردم نتونستم،ممنون میشم اگه کسی تابعی برام بده که این کارو بکنه.
http://??????????.pdf
با تشکر
------
آرش خان
SayeyeZohor
پنج شنبه 08 تیر 1391, 02:44 صبح
هلو قل بخور برو تو گلو ...
نوش جونت
دانلود سورس كد (http://s3.picofile.com/file/7421269565/GetString.rar.html)
دانلود سورس دوم
(http://s3.picofile.com/file/7421312903/GetString2.rar.html)
احتمال زياد دوستان خيلي بيشتر مي تونستند كمكت كنند
procedure TForm1.Exec(Sender: TObject);
var
I, Index: Integer;
begin
TsEND := TStringList.Create;
FOR I := 0 to Ts.Count - 1 DO
BEGIN
St := UpperCase(Ts[I]);
Index := 0;
WHILE (Pos('HTTP://', St) <> 0) AND (Pos('.PDF', St) <> 0) DO
BEGIN
PosHttp := Pos('HTTP://', St);
PosPdf := Pos('.PDF', St);
IF (PosHttp <> 0) AND (PosPdf <> 0) THEN
BEGIN
NewSt := 'از سطر '+IntToStr(I)+' از موقعيت '+IntToStr(PosHttp+Index)+' تا '+ IntToStr(PosPdf+3+Index) +' = '+ Copy(St, PosHttp, PosPdf-PosHttp+4);
TsEND.Add(NewSt);
ListBox1.Items.Add(NewSt);
Sleep(75);
Application.ProcessMessages;
Index := Index + PosPdf+3;
END;
St := Copy(St, PosPdf+4, Length(St))
END;
END;
//ShowMessage(TsEND.Text);
TsEND.SaveToFile(ExtractFilePath(Application.ExeNa me)+'StringAkhar.txt');
TsEND.Free;
end;
SAASTN
پنج شنبه 08 تیر 1391, 22:41 عصر
متوجه نشدم فقط میخوای تشخیص بدی اون فرمت وجود داره یانه، یا این که متن اون وسط رو می خوای. به هر صورت جفتش رو نوشتم. StrUtils باید use بشه:
function TForm1.DoesMatch(Str: string): Boolean;
begin
Result := StartsStr('http://', Str) and EndsStr('pdf', Str)
end;
function TForm1.GetMiddleString(Str: string): string;
begin
if DoesMatch(LowerCase(Str)) then
Result := MidStr(Str, 8, Length(Str) - 10)
else
Result := 'Doesn''t match!';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetMiddleString(Edit1.Text));
end;
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.