Привет, не знал где написать создал тему, извините=)
Подскажите
Код:
procedure TForm1.sSpeedButton3Click(Sender: TObject);
var s:string;
i:integer;
begin
sRichEdit1.Text:= IdHttp1.Get('http://bohdash.com/random/citata/qi0.php');
end;
Появляется вот так
[Ссылки могут видеть только зарегистрированные пользователи. ]
<br> в конце как видно, как можно убрать это <br> тоесть чтоб текст в sRichEdit был целым но без <br>
=)
зарания спасибо=)
procedure TForm1.sSpeedButton13Click(Sender: TObject);
var s:string;
i:integer;
begin
sRichEdit1.Text:= IdHttp1.Get('http://bohdash.com/random/anekdot/qi0.php')
end;
[Ссылки могут видеть только зарегистрированные пользователи. ]
это и есть весь скрипт=)
Добавлено через 19 минут
в коде [Ссылки могут видеть только зарегистрированные пользователи. ] страничке
[Ссылки могут видеть только зарегистрированные пользователи. ]
хотяб как зделать чтоб он брал текст не из кода строничке а со [Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось Dis1; 11.07.2013 в 23:01.
Причина: Добавлено сообщение
procedure TForm1.sSpeedButton13Click(Sender: TObject);
var s, before, after:string;
i:integer;
begin
before := IdHttp1.Get('http://bohdash.com/random/anekdot/qi0.php');
after := StringReplace(before, '<br>', '', [rfReplaceAll, rfIgnoreCase]);
sRichEdit1.Text := after;
end;
Функцией StringReplace мы заменяем '<br>' на пустоту '', а проще говоря удаляем его.
Так вам поможет?
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). Пишу софт на заказ(Delphi / C# / PHP-скрипты). Описывайте задачи и цели софта, сообщайте сумму на которую рассчитываете.
Skype: vinozavr (Молдова)
Кто плюсует популярность, подписывайтесь пожалуйста)
unit Unit2;
interface
uses
Classes,SysUtils, Variants,Dialogs, StdCtrls,lib,ssl_openssl;
type
TMyThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
procedure memoAdd;
public
email,pass,msg:string;
end;
implementation
uses Unit1;
procedure TMyThread.Execute;
var temp:array[0..10] of string;
response:string;
begin
Explode(temp,':'form1.sEdit1.Text);
email:=temp[0];
pass:=temp[1];
response:=send('GEN,https://oauth.vk.com/token?grant_tupe=password&client_id=2274003&client_secret=hHdZxrka2u26jBlinYsH&username='+urlencode(email)+'&password='+urlencode(UTF8Encode(pass))');
msg:=response;
Synchronize(memoAdd);
end;
procedure TMyThread.memoAdd;
begin
Form1.sMemo1.Lines.Add(msg);
end;
end.
3. Lib
Код:
unit lib;
interface
//by IMREADYOURMIND v 1.5
uses httpsend,ssl_openssl, forms,dialogs,Classes, Messages, SysUtils, Controls,
ExtCtrls, StdCtrls, SHDocVw, ComCtrls,syncobjs,strutils;
//îòïðàâêà çàïðîñîâ
function send(method,url:string;postParams:string='';cookie:string='';showCookie:boolean=false;proxyType:string='';proxy:string='';proxyUser:string='';proxyPass:string='';files:string='';userAgent:string='';referer:string=''):string;
function FoundLocationStrNum(str:string;Headers: TStringlist): integer;
//ðàçáèòèå ñòðîêè ïî ðàçäåëèòåëþ
procedure Explode(var a: array of string; Border, S: string);
//ñêà÷êà è ñîõðàíåíèå ôàéëà ïî ññûëêå
function DwFi(SourceFile, DestFile: string;cookie:string=''): Boolean;
//óðëåíêîä ïåðåâîä êèðèëèöû â ulr ôîðìàò
function URLEncode(const S2: string): string;
//çàìåíà â ñòðîêå
function ReplaceSub(str, sub1, sub2: string): string;
//ïàðñåð ëþáîé ñòðîêè
function parser(doc,home,eend:string;nacpos:integer=0;parstype:integer=0):string;
//Îòïðàâëåíèå êàï÷è â àíòèãåéò â îòâåò ïðèäåò ID
function captchaStart(path,key:string):string;
// ïðèåì êàï÷è â îòâåò ïðèõîäèò êàï÷à
function captchaFinish(id,key:string):string;
implementation
function captchaStart(path,key:string):string;
var res:string;
begin
res:=send('POST','http://antigate.com/in.php','method=post&soft_id=290&key='+key+'&is_russian=2','',false,'','','','','file,'+trim(path)+',image\pjpg');
result:=Trim(parser(res, '|', #13#10));
end;
function captchaFinish(id,key:string):string;
var text:string;
begin
text:=send('GET','http://antigate.com/res.php?key='+key+'&action=get&id='+id);
if trim(text)='CAPCHA_NOT_READY' then begin
result:='';
end else
result:=trim(Copy(text, 4, Length(text) - 3));
result:=urlencode(result);
end;
function parser(doc,home,eend:string;nacpos:integer=0;parstype:integer=0):string;
var raz:integer;
begin
if parstype=0 then begin
if ((trim(home)<>'') and (trim(eend)='')) then begin
result:=copy(doc,posex(home,doc,nacpos)+length(home),length(doc)-(posex(home,doc,nacpos)+length(home))+1);
end else if ((trim(home)='') and (trim(eend)<>'')) then begin
result:=copy(doc,1,posex(eend,doc,nacpos)-1);
end else if ((trim(home)<>'') and (trim(eend)<>'')) then begin
if copy(doc,posex(home,doc,nacpos)+length(home),1)<>copy(eend,1,1) then begin
raz:=posex(eend,doc,posex(home,doc,nacpos)+length(home)+1)-posex(home,doc,nacpos)-length(home);
result:=copy(doc,posex(home,doc,nacpos)+length(home),raz);
end else
result:='';
end;
end else if parstype=1 then begin
if copy(doc,posex(eend,doc,nacpos)+length(eend),1)<>copy(home,1,1) then begin
raz:=posex(home,doc,nacpos)-posex(eend,doc,nacpos)-length(eend);
result:=copy(doc,posex(eend,doc,nacpos)+length(eend),raz);
end else
result:='';
end;
exit;
end;
function URLEncode(const S2: string): string;
var
Idx: Integer;
begin
Result := '';
for Idx := 1 to Length(S2) do
begin
if S2[Idx] in ['A'..'Z', 'a'..'z', '0'..'9', '-', '=', '&', ':', '/', '?', ';', '_'] then
Result := Result + S2[Idx]
else
Result := Result + '%' + IntToHex(Ord(S2[Idx]), 2);
end;
end;
function ReplaceSub(str, sub1, sub2: string): string;
var
aPos: Integer;
rslt: string;
begin
aPos := Pos(sub1, str);
rslt := '';
while (aPos <> 0) do
begin
rslt := rslt + Copy(str, 1, aPos - 1) + sub2;
Delete(str, 1, aPos + Length(sub1) - 1);
aPos := Pos(sub1, str);
end;
Result := rslt + str;
end;
function DwFi(SourceFile, DestFile: string;cookie:string=''): Boolean;
var httpsend: THTTPSend;
begin
result:=true;
httpsend:=THTTPSend.Create;
httpsend.Cookies.Text:=cookie;
try
httpsend.HTTPMethod('GET',SourceFile );
except
on E : Exception do
result:=false;
end;
httpsend.document.SaveToFile(DestFile);
httpsend.Free;
exit;
end;
procedure Explode(var a: array of string; Border, S: string);
var
S2: string;
i: Integer;
begin
i := 0;
S2 := S + Border;
repeat
//setlength(a, i+1);
try
a[i] := Copy(S2, 0, Pos(Border, S2) - 1);
except
end;
Delete(S2, 1, Length(a[i] + Border));
Inc(i);
until S2 = '';
end ;
function send(method,url:string;postParams:string='';cookie:string='';showCookie:boolean=false;proxyType:string='';proxy:string='';proxyUser:string='';proxyPass:string='';files:string='';userAgent:string='';referer:string=''):string;
var Header : TStringList;
Contents : TStringList;
httpsend: THTTPSend;
ss: TStringStream;
i,err:integer;
s: String;
FS: TFileStream;
rev,bound:string;
mas,mas2,p,v:array[0..500] of string;
const
FIELD_MASK = #13#10 + '--%s' + #13#10 +
'Content-Disposition: form-data; name="%s"' + #13#10 + #13#10
+
'%s';
begin
randomize;
Header := TStringList.Create;
Contents := TStringList.Create;
ss := TStringStream.Create('');
httpsend:=THTTPSend.Create;
HTTPsend.UserAgent:=userAgent;
if referer<>'' then
httpsend.Headers.Insert(0,'referer: '+referer);//referererer
httpsend.Cookies.Text:=cookie; //cookies
if files<>'' then begin
Bound := IntToHex(Random(100000000), 8) + '_Synapse_boundary';
s := '--' + Bound + #13#10;
i:=0;
if files <> ' ' then begin
if pos('&',files)<>0 then begin
explode(mas,'&',files);
end else
mas[0]:=files;
while mas[i]<>'' do begin
explode(mas2,',',mas[i]);
//s:=CRLF;
s := s + 'content-disposition: form-data; name="' + mas2[0] +'";';
s := s + ' filename="' + ExtractFileName(mas2[1]) +'"' + #13#10;
s := s + 'Content-Type: '+mas2[2] + #13#10 + #13#10;
httpsend.Document.Write(Pointer(s)^, Length(s));
if mas2[1]<>'' then begin
FS:=TFileStream.Create(mas2[1], fmOpenRead);
FS.Position := 0;
httpsend.Document.CopyFrom(FS, FS.Size);
FS.Free;
end;
inc(i);
end;
end;
explode(p,'&',postParams);
i:=0;
if pos('&',postParams)<>0 then begin
explode(p,'&',postParams);
end else
p[0]:=postParams;
while p[i]<>'' do begin
explode(v,'=',p[i]);
S:= Format(FIELD_MASK,[Bound, v[0],v[1]]);
httpsend.Document.Write(Pointer(s)^, Length(s));
inc(i);
end;
s := #13#10 + '--' + Bound + '--' + #13#10;
httpsend.Document.Write(Pointer(s)^, Length(s));
httpsend.MimeType := 'multipart/form-data; boundary=' + Bound;
end else begin
httpsend.MimeType:='application/x-www-form-urlencoded;';
if method='POST' then begin
ss.WriteString(postParams);
httpsend.Document.LoadFromStream(ss);
end;
end;
httpsend.Protocol := '1.1';
// httpsend.Sock.OnStatus := OnStatus;
httpsend.Headers.AddStrings(Header); //headers
if proxyTYPE='HTTP' then begin
httpsend.ProxyHost:=Copy(Proxy,1,Pos(':',Proxy)-1);
httpsend.ProxyPort:=Copy(Proxy,Pos(':',Proxy)+1,Length(Proxy));
end else if proxyTYPE='SOCKS 4' then begin
//HTTPsend.Sock.SocksType:=
HTTPsend.Sock.SocksResolver:=false;
HTTPsend.Sock.SocksIP := Copy(Proxy,1,Pos(':',Proxy)-1);
HTTPsend.Sock.SocksPort := Copy(Proxy,Pos(':',Proxy)+1,Length(Proxy));
HTTPsend.Sock.SocksUsername := proxyUSER;
HTTPsend.Sock.SocksPassword := proxyPASS;
//HTTPsend.Sock.SocksOpen;
end else if proxyTYPE='SOCKS 5' then begin
//HTTP.Sock.SocksType := ST_Socks5 ;
HTTPsend.Sock.SocksResolver:=false;
HTTPsend.Sock.SocksIP := Copy(Proxy,1,Pos(':',Proxy)-1);
HTTPsend.Sock.SocksPort := Copy(Proxy,Pos(':',Proxy)+1,Length(Proxy));
HTTPsend.Sock.SocksUsername := proxyUSER;
HTTPsend.Sock.SocksPassword := proxyPASS;
//HTTPsend.Sock.SocksOpen;
end;
if method='GET' then begin
try
httpsend.HTTPMethod('GET',url );
except
//on EidSocketError do
on E : Exception do
result:='exception';
end;
end;
if method='POST' then begin
httpsend.HTTPMethod('POST',url);
end;
Contents.LoadFromStream(httpsend.Document);
rev := Contents.Text;
if pos('302',IntToStr(HTTPsend.ResultCode))<>0 then begin
result:=HTTPsend.Headers[FoundLocationStrNum('ocation',HTTPsend.Headers)];
end else if pos('500',IntToStr(HTTPsend.ResultCode))<>0 then begin
result:='500'+HTTPsend.Headers.Text;
end else if pos('404',IntToStr(HTTPsend.ResultCode))<>0 then begin
result:='404';
end else if pos('400',IntToStr(HTTPsend.ResultCode))<>0 then begin
result:='400';
end else if pos('307',IntToStr(HTTPsend.ResultCode))<>0 then begin
result:=HTTPsend.Headers[FoundLocationStrNum('Location',HTTPsend.Headers)];
end else if pos('301',IntToStr(HTTPsend.ResultCode))<>0 then begin
result:=HTTPsend.Headers[FoundLocationStrNum('Location',HTTPsend.Headers)];
end else
result:=rev;
if ShowCookie=true then
result:=httpsend.Cookies.Text+'@@@'+result;
httpsend.Free;
header.Free;
contents.Free;
ss.Free;
exit;
end;
function FoundLocationStrNum(str:string;Headers: TStringlist): integer;
var
FoundStrPos, i : integer;
begin
Result:= 0;
for i := 0 to Headers.Count-1 do
begin
FoundStrPos := Pos(trim(str), Headers.Strings[i]);
if FoundStrPos > 0 then
begin
Result:= i;
exit;
end;
end;
end;
end.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Блин, всё вроди правильно, можно сказать по бумажки делал(подробное почти видио)
но Delphi ругается чёт=(
выручайте=)
чтоже не так?=)
ну или место того чтоб он писал в sMemo Token.
можно просто в sLabel Присать текст тимо 'Хорошо' - 'Плохо'
Последний раз редактировалось Dis1; 13.07.2013 в 15:20.
Причина: Скрин ошибки
У тебя функция Explode имеет 3 параметра а ты передаешь в нее 2.
Код:
Explode(temp,':'form1.sEdit1.Text);
Попробуй вот так:
Код:
Explode(temp, ':', form1.sEdit1.Text);
________________ Продаю приват читы для AION Absolute, desteny 3.5, Legend, Cataclysm, Ru, EU, NA Продаю многооконку на R2 Пишу читы на заказ под любые игры. Предложения в ЛС. Все мои читы/программы/статьи тут: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Написал 2 или более раз одно и то же мне в личку - улетел в блок. Не умеешь пользоваться личными сообщениями, не видишь отправленные, твои проблемы. Учись пользоваться форумом.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). Пишу софт на заказ(Delphi / C# / PHP-скрипты). Описывайте задачи и цели софта, сообщайте сумму на которую рассчитываете.
Skype: vinozavr (Молдова)
Кто плюсует популярность, подписывайтесь пожалуйста)
мм, спс, плохая оплошнасть=)
но ошибка не в етом=
[Ссылки могут видеть только зарегистрированные пользователи. ]
Добавлено через 38 минут
Цитата:
Сообщение от NebesaBag
GEN,'...
мб так всёже?
Пересмотрел ваш пост пересмотрел видио, вам спасибо, а я снов лупоглазый=)
испровления такое..
[Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось Dis1; 13.07.2013 в 19:35.
Причина: Добавлено сообщение
А все потому что ты не учишь язык читая книги, а как обезьяна по видео копируешь куски чужого кода не понимая что там происходит. Советую купить или скачать любую книгу по делфи и начать нормально изучение.
________________ Продаю приват читы для AION Absolute, desteny 3.5, Legend, Cataclysm, Ru, EU, NA Продаю многооконку на R2 Пишу читы на заказ под любые игры. Предложения в ЛС. Все мои читы/программы/статьи тут: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Написал 2 или более раз одно и то же мне в личку - улетел в блок. Не умеешь пользоваться личными сообщениями, не видишь отправленные, твои проблемы. Учись пользоваться форумом.
А все потому что ты не учишь язык читая книги, а как обезьяна по видео копируешь куски чужого кода не понимая что там происходит. Советую купить или скачать любую книгу по делфи и начать нормально изучение.
________________ Продаю приват читы для AION Absolute, desteny 3.5, Legend, Cataclysm, Ru, EU, NA Продаю многооконку на R2 Пишу читы на заказ под любые игры. Предложения в ЛС. Все мои читы/программы/статьи тут: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Написал 2 или более раз одно и то же мне в личку - улетел в блок. Не умеешь пользоваться личными сообщениями, не видишь отправленные, твои проблемы. Учись пользоваться форумом.