Просмотр полной версии : [Delphi]/[Pascal] Задай вопрос, получи ответ
Vlad&slav
08.05.2010, 15:45
Дайте плиз рабочую функцию для отправки файла на почту, желательно конешно на винапи. С меня +
Vlad&slav,
FileName:='C:\file.exe';
SMTP.Host:='smtp.mail.ru';
SMTP.Port:=25;
SMTP.Username:='login';
SMTP.Password:='pass';
SMTP.AuthenticationType:=atLogin;
with IdMessage do
begin
From.Text := 'login@mail.ru';
Recipients.EMailAddresses := 'user@mail.ru';
Subject := 'subject"';
for i:=0 to Form1.ControlCount-1 do
if Form1.Controls[i] is TEdit then
IdMessage.Body.Add('TEdit(Form1.Controls[i]).BlaBlaBla);
TIdAttachment.Create(MessageParts, FileName);
stepashka_
08.05.2010, 19:08
На 7 инди было всё норм, поставил 10 вот что пишет при компиляции
[Ошибка] Unit1.pas(59): ':=' expected but ':' found
[Ошибка] Unit1.pas(60): Missing operator or semicolon
Ошибка в этих строках
IdMessage1.Body.Text:='Edit1.Text+':'+Edit2.Text;
IdMessage1.From.Text:='палево@yandex.ru';
На 7 инди было всё норм, поставил 10 вот что пишет при компиляции
Ошибка в этих строках
IdMessage1.Body.Text:=''+Edit1.Text+':'+Edit2.Text +'';
IdMessage1.From.Text:='палево@yandex.ru';
мб так
ZdezBilYa
08.05.2010, 19:46
На 7 инди было всё норм, поставил 10 вот что пишет при компиляции
Ошибка в этих строках
IdMessage1.Body.Text:=Edit1.Text+':'+Edit2.Text;
IdMessage1.From.Text:='палево@yandex.ru';
[stranger]
08.05.2010, 20:27
омг! *censored*! человек просил на чем? на инди?!
Здравствуйте.
Каким способом вы бы посоветовали получить список окон определённого приложения?
Процесс запускаю через CreateProcess
То есть, в наличии есть pid процесса.
Хотелось бы получить список из handle окна и его названия(ну будет handle, название я и сам найду)
mailbrush
09.05.2010, 10:58
Здравствуйте.
Какой функцией WinApi можно получить список элементов чужого приложения, имея его HANDLE. Под "элементами" я имею ввиду Edit, ComboBox, Memo etc...
Заранее спасибо.
через FindWindowEx попробуй или как вариант EnumChildWindows
mailbrush, вот небольной пример, если я правильно понял вопрос. Положи 2 Листбокса на форму (для наглядности).
procedure TForm1.Button1Click(Sender: TObject);
var h: HWND;
i: byte;
begin
ListBox1.Clear;
ListBox2.Clear;
h:=FindWindow(nil, PChar(Заголовок окна));
GetSubChild(h);
for i:=0 to ListBox1.Items.Count-1 do
EnumProc(StrToInt(ListBox1.Items[i]), 0);
end;
Следующие процедуры взяты с delphikingdom.ru и чуть переделаны.
Procedure TForm1.GetSubChild(wd:HWnD); //
Передаем в процедуру описатель окна
верхнего уровня
Var Cw:HWnd; //
Описываем еще один описатель
Begin
// Очищать список в процедуре нельзя !!!
If WD=0 then Exit; // Если
родительское окно не определено то уходим
Cw := FindWindowEx(Wd, 0, nil, nil); // Находим
первый элемент произвольного класса
while (Cw <> 0) do // Есть еще
что искать ?
begin
ListBox1.Items.Add(IntToStr(Cw)); //
Добавим описатель в виде текста в список
Application.ProcessMessages;
// Дадим поработать другим
GetSubChild(Cw);
//Вызываем себя, но родительское
окно уже Cw
Cw := FindWindowEx(Wd, Cw, nil, nil); //
Ищем следующие дочернее окно
End;
End;
function TForm1.EnumProc (WD: HWnd; Param:
LongInt): Boolean; stdcall;
var Nm:Array[0..255] of Char; // буфер для
имени
Cs: Array[0..255] of Char; // буфер для
класса
Begin
GetWindowText(Wd,Nm,255); // считываем
текст заголовка окна
GetClassName(Wd,Cs,255); // считываем
название класса окна
ListBox2.Items.Add(String(Nm)+'/'+String(Cs));
//Запихнули в список название и класс
EnumProc:=True;
End;
alexey-m
09.05.2010, 15:15
Дайте плиз рабочую функцию для отправки файла на почту, желательно конешно на винапи. С меня +
unit smtp;
interface
uses
Windows, SysUtils, Classes, WinSock2;
const
CL = #13#10;
CL2 = CL + CL;
function SendMail(Server: String; Port: Integer; const User, Pass,
From,SentTo,Tema,Body,Files: String): Boolean;
implementation
uses Encoders;
function StrToAddr(Server: String; var InAddr: TInAddr): Integer;
var
HostEnt: PHostEnt;
begin
Result:= -1;
HostEnt:= GetHostByName(PChar(Server));
FillChar(InAddr, SizeOf(InAddr), 0);
if (HostEnt = nil) then Exit;
with InAddr, HostEnt^ do
begin
S_un_b.s_b1 := (h_addr^[0]);
S_un_b.s_b2 := (h_addr^[1]);
S_un_b.s_b3 := (h_addr^[2]);
S_un_b.s_b4 := (h_addr^[3]);
end;
Result:= 0;
end;
function SendText(Sock: TSocket; S: String): Integer;
var
Buff: array[0..1023] of Char;
iSize, i: Integer;
begin
Result:=0;
S:= S + CL;
while (Length(S)>0) do
begin
iSize:= Length(S);
if ( iSize > SizeOf(Buff) ) then iSize:= SizeOf(Buff);
FillChar(Buff, SizeOf(Buff), 0);
CopyMemory(@Buff, PChar(S), iSize);
Delete(S, 1, iSize);
i:= Send(Sock, Buff, iSize, 0);
if i = SOCKET_ERROR then Break;
Result:= Result + i;
end;
end;
function RecvData(Sock: TSocket; accept: string): Boolean;
var
Buff: array[1..255] of Char;
begin
Result:= (recv(Sock, buff, SizeOf(buff), 0) = SOCKET_ERROR) or (Copy(Buff, 1, 3) = accept);
end;
procedure SendFile(SendFile: String; const Sock: TSocket);
const
Base64MaxLength = 72;
var
base64String:String;
hFile: Integer;
Buf: array[0..2] Of Byte;
Base64:TBase64;
begin
SendText(Sock, 'Content-Type: application/octet-stream; name="'+
ExtractFileName(SendFile)+'"');
SendText(Sock, 'Content-Transfer-Encoding: base64');
SendText(Sock, 'Content-Disposition: attachment; filename="'+
ExtractFileName(SendFile)+'"');
SendText(Sock, 'Content-Description: attachment');
SendText(Sock, '');
base64String:='';
hFile:= FileOpen(SendFile,fmOpenRead);
FillChar(Buf,SizeOf(Buf),#0);
Yield;
repeat
Base64.ByteCount:= FileRead(hFile,Buf,SizeOf(Buf));
Move(Buf,Base64.ByteArr,SizeOf(Buf));
base64String:= base64String + CodeBase64(Base64);
if Length(base64String) = Base64MaxLength then
begin
SendText(Sock,base64String);
base64String:= '';
end;
until Base64.ByteCount < 3;
// Отправляем последние байты
SendText(Sock,base64String);
// закрываем файл
FileClose(hFile);
SendText(Sock, '');
end;
function GenerateBoundary: String;
var
N, X, StrLen: integer;
const
StrTable: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
begin
SetLength(result, 14);
StrLen := Length(StrTable);
N := 0;
while N < 14 do begin
X:= Random(StrLen) + 1;
if (pos(StrTable[X], result) = 0) then begin
inc(N);
Result[N]:= StrTable[X];
end;
end;
end;
function GetLocalHost: string;
var
_buff : array [0..255] of char;
begin
if gethostname(_buff, 255) = 0 then
Result:= StrPas(_buff)
else
Result:= '';
end;
function SendMail(Server: String; Port: Integer; const User, Pass,
From,SentTo,Tema,Body,Files: String): Boolean;
var
Boundary: String;
wData: TWSAData;
SockSMTP: TSocket;
SockAddr: TSockAddrIn;
begin
Result:= False;
if (WSAStartup(MakeWord(2, 2), wData)<>0) then Exit;
try
//================================================== =========
// Connect to SMTP server and send message\file
//============================
SockAddr.sin_family:= AF_INET;
if (StrToAddr(Server, SockAddr.sin_addr)=0) then begin
SockAddr.sin_port:= HToNS(Port);
FillChar(SockAddr.sin_zero, SizeOf(SockAddr.sin_zero), 0);
SockSMTP:= Socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
if SockSMTP <> INVALID_SOCKET then begin
if (Connect(SockSMTP, @SockAddr, Sizeof(SockAddr))=0) then begin
if RecvData(SockSMTP,'220') then begin
SendText(SockSMTP,'EHLO ' + GetLocalHost); { HELO }
if RecvData(SockSMTP,'250') then begin
SendText(SockSMTP,'AUTH PLAIN ' + Base64Encode(User+#0+User+#0+Pass));
if RecvData(SockSMTP,'235') then begin
SendText(SockSMTP,'MAIL FROM:' + From);
if RecvData(SockSMTP,'250') then begin
SendText(SockSMTP,'RCPT TO:' + SentTo);
if RecvData(SockSMTP,'250') then begin
SendText(SockSMTP,'DATA');
if RecvData(SockSMTP,'354') then begin
SendText(SockSMTP,'From: ' + From);
SendText(SockSMTP,'To: ' + SentTo);
SendText(SockSMTP,'Subject: ' + Tema);
SendText(SockSMTP,'Mime-Version: 1.0');
SendText(SockSMTP,'Content-Type: multipart/mixed;');
SendText(SockSMTP,'boundary="----------' + Boundary + '"');
SendText(SockSMTP,'');
SendText(SockSMTP,'This is a multipart MIME-coded message');
SendText(SockSMTP,'');
SendText(SockSMTP,'------------' + Boundary);
SendText(SockSMTP,'Content-Type: text/plain; charset=Windows-1251');
SendText(SockSMTP,'Content-Transfer-Encoding: 8bit');
SendText(SockSMTP,'');
SendText(SockSMTP,Body);
if Files<>'' then begin
SendText(SockSMTP,'------------' + Boundary);
SendFile(Files,SockSMTP);
SendText(SockSMTP,'------------' + Boundary + '--');
SendText(SockSMTP,'');
end;
SendText(SockSMTP, CL + '.' + CL);
SendText(SockSMTP, 'QUIT');
Result:= True;
end;
end;
end;
end;
end;
end;
end;
CloseSocket(SockSMTP);
end;
end;
finally
WSACleanup;
end;
end;
end.
mailbrush
09.05.2010, 17:25
=Zeus=, именно это! Спасибо!
Syntaxys
11.05.2010, 09:39
for i:=1 to x do
for j:=i to x do
if StrToIntDef(form1.StringGrid1.Cells[j,i],-1)>0 then
begin
n:=n+1;
m[n,1]:=StrToInt(form1.StringGrid1.Cells[0,i]);
m[n,2]:=StrToInt(form1.StringGrid1.Cells[j,0]);
m[n,3]:=StrToIntDef(form1.StringGrid1.Cells[j,i],-1);
end;
Объясните пожалуйста выделенную функцию. понятно, что функция StrToIntDef конвертирует строку из ячейки, но "-1" что означает?
h(f)ucker
11.05.2010, 10:54
Функция StrToIntDef конвертирует строку с целым IntegerString, такую как '123', в целое Integer, возвращая Default, если преобразование не удалось.
function StrToIntDef ( const IntegerString : string; Default : Integer ) : Integer;
По сути, просто число которое будет присвоено при ошибке конвертирования.
как заставить idhttp работать через соксы?
как правельно привязать idsocksinfo к idhttp?
Парни, из-за чего происходит такая ошибка в инди?
http://s49.radikal.ru/i125/1005/dc/5dab214691b2.png
Уже полчаса голову ломаю...раньше все нормально было.
Получаю письма с ящика с помощью idpop3.
Некоторые письма принимаются, а некоторые нет, даже ошибки не возникает
Почему так?
Есть лекарство на компонент Securу bridge?
Парни, из-за чего происходит такая ошибка в инди?
http://s49.radikal.ru/i125/1005/dc/5dab214691b2.png
Уже полчаса голову ломаю...раньше все нормально было.
Сокет закрываешь?
closesocket(Handle)
Сокет закрываешь?
closesocket(Handle)
Да это оказывается фаер блочил соединения :D
Ребутнул пк, вырубил фаер и все нормально стало :)
ANTIHАCK
12.05.2010, 11:39
Помогите составить регулярку, или чем лучше вырезать из кода:
<div class="ubb_userpic"><img src="/files/portfolio/325/32546/userpic_s.jpg" class="userpic_s" alt="Фотография / Юзерпик" /></div><div class="ubb_data">
<img src="/img/icons/offline.gif" alt="Оффлайн" title="Оффлайн" class="ico_online" /><a href="/users/batonych/">Непринец Игорь (batonych)</a><br /><br /><div class="ubb_text">Украина | 24 года | В сервисе: 3 года 7 месяцев</div></div>
<div class="ubb_userpic"><img src="/files/portfolio/197/19734/userpic_s.jpg" class="userpic_s" alt="Фотография / Юзерпик" /></div><div class="ubb_data">
<img src="/img/icons/offline.gif" alt="Оффлайн" title="Оффлайн" class="ico_online" /><a href="/users/AlexsimA/">Д. Серафима (AlexsimA)</a><br /><br /><div class="ubb_text">Украина | 39 лет | В сервисе: 4 года 1 месяц</div></div>
<div class="ubb_userpic"><img src="/files/portfolio/69/6943/userpic_s.jpg" class="userpic_s" alt="Фотография / Юзерпик" /></div><div class="ubb_data">
<img src="/img/icons/online.gif" alt="Онлайн" title="Онлайн" class="ico_online" /><a href="/users/Art-Media/">В. Андрей (Art-Media)</a><br /><br /><div class="ubb_text">Россия | 23 года | В сервисе: 4 года 7 месяцев</div></div>
Все ники (они в скобках.) Из верхнего отрывка кода должно получится:
batonych
Alexsim
Art-Media
/users/(.+?)/
regex like
Ищем /users/ читаем все после и до первого "/"
ANTIHАCK
12.05.2010, 13:46
/users/(.+?)/
regex like
Ищем /users/ читаем все после и до первого "/"
Спасибо, но такой код:
RegExp := TRegExpr.Create;
RegExp.Expression := '/users/(.+?)/';
if RegExp.Exec(Sob) then Form1.Memo5.Lines.Add(RegExp.Match[1]);
парсит только первый ник, а не все что есть на странице.
Не совсем понял что такое like, и как его юзать : ) У меня нету хелпа.
GhostOnline
12.05.2010, 13:55
парсит только первый ник, а не все что есть на странице.
RegExp := TRegExpr.Create;
RegExp.Expression := '/users/(.+?)/';
if RegExp.Exec(Sob) then
repeat
Form1.Memo5.Lines.Add(RegExp.Match[1]);
until not RegExp.ExecNext;
ANTIHАCK
12.05.2010, 13:59
RegExp := TRegExpr.Create;
RegExp.Expression := '/users/(.+?)/';
if RegExp.Exec(Sob) then
repeat
Form1.Memo5.Lines.Add(RegExp.Match[1]);
until not RegExp.ExecNext;
Спасибо работает) Правда все по 4 раза прописывает)
batonych
batonych
batonych
AlexsimA
AlexsimA
AlexsimA
AlexsimA
Art-Media
Art-Media
Art-Media
Art-Media
GhostOnline
12.05.2010, 14:04
как заставить idhttp работать через соксы?
как правельно привязать idsocksinfo к idhttp?
IdHttp1.IOHandler := TIdIoHandlerStack.Create;
TIdIoHandlerStack(IdHttp1.IOHandler).TransparentPr oxy := TIdSocksInfo.Create;
TIdSocksInfo(TIdIoHandlerStack(IdHttp1.IOHandler). TransparentProxy).Host := ...;
TIdSocksInfo(TIdIoHandlerStack(IdHttp1.IOHandler). TransparentProxy).Port := .....;
TIdSocksInfo(TIdIoHandlerStack(IdHttp1.IOHandler). TransparentProxy).Version := .....;
ЗЫ Вариант без объявления лишних переменных :D
GhostOnline
12.05.2010, 14:07
Спасибо работает) Правда все по 4 раза прописывает)
Потому что и находит каждую строку 4 раза :)
Либо составляй такую регулярку чтобы один ник находился один раз, либо прежде чем добавлять в мемо проверяй есть ли уже такая подстрока:
if pos(RegExpr.Match[1], memo1.Lines.Text) = 0 then Memo1.Lines.Add(RegExpr.Match[1]);
ANTIHАCK
12.05.2010, 14:11
Потому что и находит каждую строку 4 раза :)
Либо составляй такую регулярку чтобы один ник находился один раз, либо прежде чем добавлять в мемо проверяй есть ли уже такая подстрока:
if pos(RegExpr.Match[1], memo1.Lines.Text) = 0 then Memo1.Lines.Add(RegExpr.Match[1]);
Спасибо. Теперь все ок
http://img694.imageshack.us/img694/5747/wtfev.jpg
с х*я "-1" если (15 = 15) = 1 ?
ZdezBilYa
12.05.2010, 23:35
http://img694.imageshack.us/img694/5747/wtfev.jpg
с х*я "-1" если (15 = 15) = 1 ?
BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string - преобразует булевское значение в строку. Если параметр UseBoolStrs имеет значение False, то результатом работы функции является одно из значений '0' или ‘-1’. Если же параметр UseBoolStrs имеет значение True, то результатом работы является одно из значений ‘FALSE’ или ‘TRUE’ (программист может задать другие значения; о том, как это сделать, читайте в справочнике по системе Delphi).
т.е. '-1' - это true
GhostOnline
12.05.2010, 23:37
http://img694.imageshack.us/img694/5747/wtfev.jpg
с х*я "-1" если (15 = 15) = 1 ?
:D Перлы дельфи (http://webcache.googleusercontent.com/search?q=cache:RIFix_E47eoJ:forums.ibresource.ru/blog/%D0%A0%D1%94%D0%A0%D0%86%D0%A1%D0%8C%D0%A0%D0%85%D 0%A0%D2%91%D0%A0%D1%91/index.php%3Fshowentry%3D299+booltostr+delphi&cd=1&hl=ru&ct=clnk&gl=ru&lr=lang_ru&client=firefox)
Делай так:
ShowMessage(IntToStr(integer(false))); - показывает 0
ShowMessage(IntToStr(integer(true))); - показывает 1
При работе с winsock
Как получить весь html код страницы?
Buffer2:array[1..1024] of char;
recv(Socket1,Buffer2,SizeOf(Buffer2),0);
memo1.lines.add(utf8toansi(Buffer2));
Получаю только начало((
GhostOnline
13.05.2010, 12:50
Может потому что 1024 символа всего можно принять в Buffer2?
-PsychonauT-
13.05.2010, 14:04
есть form1 и form2, progressbar1 и timer1
хочу сделать чтоб когда progressbar1.position был равен timer1.interval
закрывалась form1, а открывалась form2
подскажите как сделать?
stepashka_
13.05.2010, 14:10
Подскажите как сделать что бы текст из edit1 & edit2 при нажатии на кнопку дописывался в файл например http://blabla.ru/bla.txt
SkyLine32
13.05.2010, 14:32
Подскажите как сделать что бы текст из edit1 & edit2 при нажатии на кнопку дописывался в файл например http://blabla.ru/bla.txt
procedure TForm1.Button1Click(Sender: TObject);
var
F : TextFile;
S, S2 : String;
begin
AssignFile(F, 'bla.txt');
Append(F);
S := Edit1.Text;
S2 := Edit2.Text;
WriteLn(F,S+S2);
CloseFile(F);
end;
Вопрос совсем не по делфи, но может знает кто.. Где можно взять звуки для программы?
Например: "Идёт соединение с сервером". И чтобы девушка с красивым голосом говорила :-) Самому записывать не предлагать.
Заранее всем спасибо)
BrainDeaD
13.05.2010, 15:27
http://www.findsounds.com/types.html
Что-то ничего толкового там нет, тупо вопли, смех и прочее..
repeat
FillChar(Buffer2,SizeOf(Buffer2),0);
d:=recv(Socket1,Buffer2,SizeOf(Buffer2),0);
for i:=1 to d do html:=html+utf8toansi(Buffer2[i]);
memo1.Lines.Add(html);
until d<=0;
В чем ошибка ? Цикл не завершается..
Jingo Bo
13.05.2010, 20:41
В чем ошибка ? Цикл не завершается..
Соеднинение не разрывается. recv должны сама вылететь с 0 (как у тебя написано или с WSAENETRESET)
В заголовке отправляй Connection: close
Здравствуйте. Требуется помощь с установкой indy 10 на delphi 7
Хочу научиться создавать собственные, хоть и простые, фейки на delphi. Поиск указал мне статью, в которой описывается способ.
Но как видно для работы с интернетом нужна indy 10.
Пробовал сам установить, но никак не выходит, буду признателен за вашу помощь.
Если есть желание помочь, напишите в ПМ.
Всем доброго времени суток! Не подскажите в чём трабл?
procedure TForm1.Button1Click(Sender: TObject);
var tmp,tmp3:String;
begin
tmp3:='Profiles';
SRC:=TStringList.Create();
SRC.LoadFromFile(get(CSIDL_APPDATA)+'profiles.ini' );
tmp:=SRC.Strings[6];
Delete(tmp,1,14);
fullPath:=get(CSIDL_APPDATA)+tmppath+tmp3+'\'+tmp+ '\'+key3;
CopyFile(PChar(Full),PChar('C:\key3.db'),false);
end;
В переменную Full записывается полный путь до файла key3.db в папке с FireFox При попытке копировать его возникает ошибка.. Системе не удаётся найти указанный файл
Всё на 100 раз проверил.. Но так и не понял почему ошибка возникает.. Другие файлы копируются нормально.. Антивирусов нет..
Подскажите в чём трабл..
Всем доброго времени суток! Не подскажите в чём трабл?
procedure TForm1.Button1Click(Sender: TObject);
var tmp,tmp3:String;
begin
tmp3:='Profiles';
SRC:=TStringList.Create();
SRC.LoadFromFile(get(CSIDL_APPDATA)+'profiles.ini' );
tmp:=SRC.Strings[6];
Delete(tmp,1,14);
fullPath:=get(CSIDL_APPDATA)+tmppath+tmp3+'\'+tmp+ '\'+key3;
CopyFile(PChar(Full),PChar('C:\key3.db'),false);
end;
В переменную Full записывается полный путь до файла key3.db в папке с FireFox При попытке копировать его возникает ошибка.. Системе не удаётся найти указанный файл
Всё на 100 раз проверил.. Но так и не понял почему ошибка возникает.. Другие файлы копируются нормально.. Антивирусов нет..
Подскажите в чём трабл..
Может:
CopyFile(PChar(fullPath),PChar('C:\key3.db'),false );
т.к. я не вижу Full, но есть fullPathю
=) Эт я ошибся.. Но не из-за этого трабл.. всё равно не хочет копироваться..
Другие версии будут?)
=) Эт я ошибся.. Но не из-за этого трабл.. всё равно не хочет копироваться..
Другие версии будут?)
В этом куске кода кроме той ошибки, я не нашел. Так что проверяй:
get(CSIDL_APPDATA) - Вот это от куда и что дает?
tmp:=SRC.Strings[6]; - что тут получается.
В общем делай трассировку кода или проверки (MessageBox). Вот кусок добавил если скажет, что файла нет, значит где то в получении пути дело.
...
fullPath:=get(CSIDL_APPDATA)+tmppath+tmp3+'\'+tmp+ '\'+key3;
if not FileExists(fullPath) then
MessageBox(0,PAnsiChar('Путь до файла не существует:' +#13#10+fullPath),'Not File',0);
CopyFile(PAnsiChar(fullPath),PAnsiChar('C:\key3.db '),false);
Всё, впорос исчерпан =) В константе ошибка была.. =))
помогите, нужно что бы при нажатии по бутону открываласть программа, пробывал функцию shellexecute но получается ошибка т.к в папке находятся еще и файлы к программе... как можно открыть программу как через проводник, что бы вместе с программой открылись все файлы.. надеюсь объяснил понятно.. спасибо
Пробывал ShellExecute(Handle, 'open', PChar('c:\glob\file.exe'),nil,nil,S W_SHOWNORMAL); не катит, открывает только exe а конфиг который лежит в папке с программой не открывается...
niva622,
Попробуй запускать с параметрами.
по конкретнее с какими именно есть мысли ?
Ну например так
ShellExecute(Handle, 'open', PChar('c:\glob\file.exe -config.ini'),nil,nil,S W_SHOWNORMAL);
не получается вообще не открывается программа... может есть еще варианты, да и еще видимо дело в том что в папке файл не один конфиг + еще 4 файла. Есть вариант создать ярлык и запустить с ярлыка, но это не выход, нужно придумать что бы можно было открывать без ссылки.
Вот так:
ShellExecute(Application.Handle,'open','hl.exe','-nomaster -game cstrike',nil,SW_SHOW);
Жирным шрифтом параметры идут.. CS открывается на 5...
неа не получается... ошибка, грит что конфиг не найдет... не пойму в чем дело...
Что за программа?
Вот можно ещё так...
ShellExecute(Application.Handle,'open','NOTEPAD.ex e','test.log',nil,SW_SHOW);
Блокнот прекрасно файл загружает... главное чтобы не было "-"...
Программа globax, ускорить для интернет соединений, последний вариант тоже не работает.
все проблема решилась вот что сделал
procedure Run(FileName:string);
var
Si:_STARTUPINFOA;
Pi:PROCESS_INFORMATION;
s,s2:string;
begin
GetStartupInfo(Si);
s:=ExtractFileDir(FileName);
s2:=FileName;
CreateProcess(nil,PChar(s2),nil,nil,false,0,nil,PC har(s),Si,Pi);
end;
neuron123
16.05.2010, 18:19
Существует ли способ, что бы при нажатии, кнопки на сайте, автоматически авторизовался к примеру акаунт в vk либо на другом сайте(то есть ввод определённого пароля автоматом). Благодарность WMZ.
Существует ли способ, что бы при нажатии, кнопки на сайте, автоматически авторизовался к примеру акаунт в vk либо на другом сайте(то есть ввод определённого пароля автоматом). Благодарность WMZ.
На сайте? Тебе точно Delphi/Pascal нужен?
GrimmJow
18.05.2010, 15:49
Какой посоветуете учебник для Delphi 7, желательно на русском языке? А то их сотни, а оптимальный выбрать не могу.
SkyLine32
18.05.2010, 16:33
Какой посоветуете учебник для Delphi 7, желательно на русском языке? А то их сотни, а оптимальный выбрать не могу.
Это смотря что тебе нужно. Советую эту книгу (http://delphistudio.ru/skachat-knigi-uchebniki-delphi/15-kniga-bibliya-delphi-mixail-flenov.html) для новичка самое то
GrimmJow
18.05.2010, 16:47
Погуглил я на эту тему еще раз. О книгах Фленова просто куча негативных отзывов, поэтому решил остановиться на Marco Cantu "Delphi 7: Для профессионалов". Название книжки конечно пугает (как и количество страниц 1к+) :) Но, с моим опытом, хотя и крайне незначительным в c++ & php, постараюсь одолеть её.
"И да поможет мне Бог". Да.
GhostOnline
18.05.2010, 17:01
Да, Кэнту хороший автор, я даже книгу купил с озона. Правда под дельфи 2005.
А дельфи 7 - унылое гавно мамонта, осваивай сразу дельфи 2009-2010
GrimmJow
18.05.2010, 20:00
Простите за назойливость :rolleyes: , нужно ли изучать Turbo Pascal перед Делфи?
GhostOnline
18.05.2010, 20:23
Нет!
ZdezBilYa
18.05.2010, 20:25
Простите за назойливость :rolleyes: , нужно ли изучать Turbo Pascal перед Делфи?
Желательно
crazyserega1994
18.05.2010, 23:47
Как через UDP отправить HEX "FF FF FF FF 54 53 6F 75 72 63 65 20 45 6E 67 69 6E 65 20 51 75 65 72 79 00" ?
2 crazyserega1994
socket()
sendto()
Данные сможешь записать в строку типа
s := #$FF#$FF#$FF#$FF#$54#$53#$6F#$75#$72#$63#$65#$20#$ 45#$6E#$67#$69#$6E#$65#$20#$51#$75#$65#$72#$79#$00
Да, Кэнту хороший автор, я даже книгу купил с озона. Правда под дельфи 2005.
А дельфи 7 - унылое гавно мамонта, осваивай сразу дельфи 2009-2010
самые нормальные версии делфи - это 7 , а последняя дельфа - это 2006. а то говно о котором ты сказал (2009-2010) - это самое кривое что я когданить видел, плюс к тому это уже не дельфи а выкупленно П.О. Борланда.
ПРИВЕТ, ДРУЗЬЯ!)
КТО НИБУДЬ может помочь с решением курсовой??????????
(всего две задачи, думаю у вас они не вызовут затруднений, 1 курс, решить с помощью Procedure или Function)
уже есть наброски практически готовые задачи. в одной просто надо добавить какую то функции и процедуру, а во второй просто какая то ошибка)
Связь: Icq 282435 или отпишите здесь
очень срочно
[PASCAL]
ПРИВЕТ, ДРУЗЬЯ!)
КТО НИБУДЬ может помочь с решением курсовой??????????
(всего две задачи, думаю у вас они не вызовут затруднений, 1 курс, решить с помощью Procedure или Function)
уже есть наброски практически готовые задачи. в одной просто надо добавить какую то функции и процедуру, а во второй просто какая то ошибка)
Связь: Icq 282435 или отпишите здесь
очень срочно
[PASCAL]
ну показывай посмотрим.
ну показывай посмотрим.
добавься в аську, я тебе изображение скину
Vlad&slav
19.05.2010, 13:16
Мне нужно сделать чтобы пхп скрипт передал команду проге через сокеты(фсокопен.....), заюзав либо компонент идхттпсервер либо сокетсервер. Лучше первое.
На чём проще?
И примерчик если можете простой.
Мне нужно сделать чтобы пхп скрипт передал команду проге через сокеты(фсокопен.....), заюзав либо компонент идхттпсервер либо сокетсервер. Лучше первое.
На чём проще?
И примерчик если можете простой.
:confused:
Если тебе просто получить, ответ (что выводит php скрипт) то:
На Indy Client.
var
str:string;
begin
str:=idHTTP.Get('http://127.0.0.1/index.php?login=user&password=123');
ShowMessage(str);
end;
Скрипт
<?php
Echo "Login: ".$_GET['login']."<br>";
Echo "Pswd: ".$_GET['lpassword']."<br>";
?>
P.s. Писалось на коленках :)
Vlad&slav
19.05.2010, 22:28
:confused:
Если тебе просто получить, ответ (что выводит php скрипт) то:
На Indy Client.
var
str:string;
begin
str:=idHTTP.Get('http://127.0.0.1/index.php?login=user&password=123');
ShowMessage(str);
end;
Скрипт
<?php
Echo "Login: ".$_GET['login']."<br>";
Echo "Pswd: ".$_GET['lpassword']."<br>";
?>
P.s. Писалось на коленках :)
Это я умею, мне нужно в точности до наоборот.
В РОЛИ КЛИЕНТА ВЫСТУПВЕТ СКРИПТ, скрипт зная ип компа делает запрос на него через сокеты а комп принимает и выполняет действие
как сделать что бы при вводе в текстовое поле допустим уравнения или функции(cos(х)) программа считывала его и дальше с ним работала?
Ice_VeNOm
20.05.2010, 05:29
Indy. При Пост запросе компоненту передается заголовок location, после чего компонент переходит по адресу в заголовке, но делает он это тоже Пост запросом с MimeType multipart/form-data. Мне необходимо, что бы indy переходил get запросом. Как реализовать?
При попытке отключения HandleRedirects, delphi отказывается выводить Response.Location.
Vlad&slav неочень понял вопрос но может так?:
1. Ляпаеш на форму TtcpServer.
2. Настраиваешь порт, хост и т.д. (а... и ещё Active := true)
3. Событие OnAccept возникнет когда что то придёт.
procedure TForm1.tcpServer1(Sender: TObject;
ClientSocket: TCustomIpClient);
begin
//ClientSocket.Receiveln; это как раз то что пришло.
end;
Доброго времени суток :-) Помогите)
sid:= cgi.Strings[135];
Delete(sid,1,28);
sid становится такой src="img2img.cgi?img=ba2eb0f65e4f6436b48795169ae403d5" /> <i>→</i>'
Вопрос: Как выдрать текст "ba2eb0f65e4f6436b48795169ae403d5"
Длина текста может быть разной. Будьте добры кусочек кода.
P.S пробовал так: sid:=Copy(sid,Pos(sid,'"'),Pos(sid,'"'); Не выходит...
heretic1990
20.05.2010, 16:16
iGlass, я так понял ты хочешь спарсить капчу. вот пример:
http://www.webdelphi.ru/2009/10/dva-sposoba-zagruzki-captcha-dlya-poluavtomaticheskix-registracij/
Это я умею, мне нужно в точности до наоборот.
В РОЛИ КЛИЕНТА ВЫСТУПВЕТ СКРИПТ, скрипт зная ип компа делает запрос на него через сокеты а комп принимает и выполняет действие
Web Server? Вот статья на WinApi.
Тык (http://www.vr-online.ru/?q=content/web-server-na-delphi-666)
Доброго времени суток :-) Помогите)
sid:= cgi.Strings[135];
Delete(sid,1,28);
sid становится такой src="img2img.cgi?img=ba2eb0f65e4f6436b48795169ae403d5" /> <i>→</i>'
Вопрос: Как выдрать текст "ba2eb0f65e4f6436b48795169ae403d5"
Длина текста может быть разной. Будьте добры кусочек кода.
P.S пробовал так: sid:=Copy(sid,Pos(sid,'"'),Pos(sid,'"'); Не выходит...
function ParserBlock(var Page:string; const Param1,Param2:string):string;
var
BeginPos,
EndPos:integer;
TempPage:string;
begin
BeginPos:=AnsiPos(Param1,Page)+length(Param1);
delete(Page,1,beginPos-1);
BeginPos:=AnsiPos(Param1,Page)+length(Param1);
EndPos:=AnsiPos(Param2,Page);
Result:=copy(page,1,EndPos-1);
end;
В Text будет твой номер.
text:=ParserBlock(sid,'img=','" />');
Подскажите как заблокировать определенную клавишу, например мне нужно что бы не работала клавиша ALT ?
Есть такой вопрос. Хочу написать консольное приложение, которое будет соединятся с удаленным компьютером. Возможно ли такое на паскале ?
Разве что через WinAPI. ДА и зачем так извращаться?
Подскажите как заблокировать определенную клавишу, например мне нужно что бы не работала клавиша ALT ?
Событие onKeyPress:
if key="код клавиши alt" then
key := #0;
2 Deani на обычном паскале нельзя. Тока на 32 битном можно.
Досовские и 16 битные под Win не подходят.
procedure TForm1.Button1Click(Sender: TObject);
var
HTML: string;
Money: string;
R: TRegExpr;
begin
HTML:=IdHTTP1.Get('http://www.сайтец.ыы');
memo1.Text:=html;
R:= TRegExpr.Create;
try
R.Expression := '^(?im).*?</td><td title="(.*?)" class="wrap".*$';
if R.Exec(HTML) then
begin
repeat
Money:= Money + R.Match[1] + #13#10;
until not R.ExecNext;
memo2.Text:=Money;
end;
finally
R.Free;
end;
end;
выводит только 1вое найденное значение, остальные нет, в чем проблема?(
GhostOnline
22.05.2010, 17:45
DiSi выглядит все правильно. Регулярка точно подходит под остальные выражения?
А хотя, вообще то надо так:
memo1.Lines.Text := Money;
а не так:
memo1.Text := Money;
DiSi выглядит все правильно. Регулярка точно подходит под остальные выражения?
А хотя, вообще то надо так:
memo1.Lines.Text := Money;
а не так:
memo1.Text := Money;
да там идет список и у всех одинаковые теги
может есть какаето альтернатива? в 1 строке походу только 1 значение которое мне нужно достать
GhostOnline
22.05.2010, 18:05
TRegExpr прекрасно работает, ничег обольше не нужно
Залей куда ни будь HTML код этой страницы, составлю тебе регулярку.
всем спс) разобрался
https://forum.antichat.ru/showpost.php?p=1308831&postcount=8
crazyserega1994
23.05.2010, 21:20
Почему если кодировать строку в md5 в Delphi и на сайте, результаты разные? :\
юникод? что за сайт? что за строка?
heretic1990
24.05.2010, 19:51
как из indy 10 отправлять письмо, в новой версии нет такого: SMTP.AuthenticationType:=atLogin; .
тестил через яндекс, может в нём проблема?
есть ли у кого пример рабочий?
***
проблема решена...
Почему если кодировать строку в md5 в Delphi и на сайте, результаты разные? :\
как бы телепатов нет.
Поэтому:
1. Что за сайт.
2. В чем хеш MD5 делаешь? (проверь с другими программами) самое простое в PHP.
<? echo MD5(GET_['text']; ?>
index.php?text=124
3. может надо сделать строку MD5 и полученый результать еще MD5.
4. Может еще быть добавлена соль.
~Al'taiR~
24.05.2010, 22:27
Как присвоить полю mеmо значение по умолчанию, отличное от названия?
Как присвоить полю mеmо значение по умолчанию, отличное от названия?
Тоесть?
Memo1.text:='Значение';
~Al'taiR~
24.05.2010, 22:41
Тоесть?
Memo1.text:='Значение';
А еще есть какие способы кроме простого присваивания?
Radical Edward
25.05.2010, 15:16
Привет всем. Вопрос простой. Мне надо декомпилировать Дельфиновскую екзешку. Какой программой это лучше всего сделать. Если невозможно декомпилоровать, то хотя бы дизассемблировать. Однако чем ЛУЧШЕ ВСЕГО
heretic1990
25.05.2010, 21:12
подскажите как вывести в Label количество "оборотов" таймера
onTimer
label.caption := IntToStr(timercount);
inc(timercount); ?
heretic1990
25.05.2010, 23:45
onTimer
label.caption := IntToStr(timercount);
inc(timercount); ?
пробовал, не помогло...
alexey-m
26.05.2010, 00:32
Привет всем. Вопрос простой. Мне надо декомпилировать Дельфиновскую екзешку. Какой программой это лучше всего сделать. Если невозможно декомпилоровать, то хотя бы дизассемблировать. Однако чем ЛУЧШЕ ВСЕГО
Поиграйся вот этим IDR (Interactive Delphi Reconstructor) -декомпилятор исполняемых файлов (EXE) и динамических библиотек (DLL), написанных на языке Delphi скачать (http://kpnc.org/idr32/ru/download.htm)
подскажите как вывести в Label количество "оборотов" таймера
тоесть вывести сколько осталось пройти таймеру до 0 ?
heretic1990
26.05.2010, 07:31
тоесть вывести сколько осталось пройти таймеру до 0 ?
неет, надо определить сколько раз сработал таймер. например я включил таймер, в нём код программы, каждый раз время выполнения её разное. если использовать цикл, то можно былобы не париться и использовать переменная:=переменная+1; но с таймером такое не прокатывает.
короче надо узнать сколько раз сработал код программы в таймере.
Нужно вывести произведение первых 5 чётных чисел
Паскаль =)
"Program 10;
var i,n,s: Integer;
begin
write ('n=');
readln (n);
for i:= 1 to 5 do
if i mod 2 =0 then s:= s+i;
writeln ('Сумма чётных чисел от 1 до ',5,' равна ',s);
end."
Где тут ошибки ? =)
GhostOnline
26.05.2010, 18:12
for i:= 1 to 5 do
У тебя i идет от 1 до 5. В этом интервале только 2 четных числа - 2 и 4
И пишешь что надо произведение, а сам сумму считаешь
Да, и еще не понятно, для чего здесь:
write('n=');
readln(n);
Ты ведь n нигде не используешь.
Также нужно присвоить начальное значение переменной s.
Ага всем спасибо большое) что-то я затупил с изучением поскаля)
Первая моя задача по паскалю закончилась)
Вдруг кому нужно будет
program chetnie; var i,s:integer; begin s:=1; for i:=1 to 10 do begin if i mod 2 = 0 then s:=s*i; end; writeln('Произведение первых 5-ти ЧЁТНЫХ чисел равно ',s); end.
как в Edit можно засунуть кнопку или картинку типа как в WebMoney??
heretic1990
27.05.2010, 17:03
как в Edit можно засунуть кнопку или картинку типа как в WebMoney??
это где у них такое?
как в Edit можно засунуть кнопку или картинку типа как в WebMoney??
Image.Parent := Edit;
Image.Left := 0;
Image.Top := 0;
неет, надо определить сколько раз сработал таймер. например я включил таймер, в нём код программы, каждый раз время выполнения её разное. если использовать цикл, то можно былобы не париться и использовать переменная:=переменная+1; но с таймером такое не прокатывает.
короче надо узнать сколько раз сработал код программы в таймере.
Что у тебя там не получилось? Кинь код, у меня все работает.
неет, надо определить сколько раз сработал таймер. например я включил таймер, в нём код программы, каждый раз время выполнения её разное. если использовать цикл, то можно былобы не париться и использовать переменная:=переменная+1; но с таймером такое не прокатывает.
короче надо узнать сколько раз сработал код программы в таймере.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.tag:=Timer1.tag+1;
Form1.caption:=IntToStr(Timer1.tag);
end;
Мсье знает толк в извращениях :)
heretic1990
29.05.2010, 16:53
090808, большое спасибо! то что надо!
Delphi
Как называется такая штука и как её сделать
http://gyazo.com/ecc3b7d4314a1c38af008e39c6ac175c.png
Я думал "Всплывающая подсказка" но нет :(
heretic1990
30.05.2010, 16:00
с помощью CoolTrayIcon можно наподобие этого сделать.
с помощью CoolTrayIcon можно наподобие этого сделать.
Это то что нужно, но....
Я открываю
CoolTray\demos\CoolTrayTest\CoolTrayTest.dpr
http://gyazo.com/a443efb3dea54c066f9a3f8b085bc640.png
Жму игнор
Открывается форма, всё норм, хочу запустить
http://gyazo.com/e1b218d101c6267a795e036a21116208.png
Ну жму No
[Fatal Error] CtMain.pas(7): File not found: 'CoolTrayIcon.dcu'
Жму Yes, тоже самое :o
Где найти этот класс TCoolTrayIcon и куда его установить или пихнуть или прописать или чё с ним делать :confused:
===============
Нащёл install.txt пойду изучать
Вааааааааааа!11 Рабооотаееееттт111
Пляске пляске!11 :D
fenixelite
30.05.2010, 16:45
Качаешь CoolTrayIcon (http://delphistudio.ru/skachat-komponenty-delphi/35-komponent-cooltrayicon.html). Открываешь CoolTrayIcon_D6plus.dpk и жмешь install. Ну и потом делаешь что хочешь :)
Delphi
Как называется такая штука и как её сделать
http://gyazo.com/ecc3b7d4314a1c38af008e39c6ac175c.png
Я думал "Всплывающая подсказка" но нет :(
Это BalloonHint в cooltrayicon.
trayicon1.ShowBalloonHint('Заголовок', 'Текст', bitInfo, 10);
Да там я разобрался...
Другая трабла, у мя есть .ico иконка
Project - Options - Load Icon
Она загружается в прогу, всё норм
Но когда я хочу запустить прогу...
[Error] WARNING. Duplicate resource(s):
[Error] Type , ID s:
[Error] File E:\Project1.res resource kept; file E:\Project1.res resource discarded.
[Error] Type 2 (BITMAP), ID BBHELP:
[Error] File E:\Project1.res resource kept; file c:\program files\borland\delphi7\Lib\Buttons.res resource discarded.
Как иконка может вызывать такие ошибки :confused:
Подскажите, пожалуйста, как на языке паскаля записать вот эти формулы:
y=корень квадратный(1-0,1sin^2 фи)
y=log(5снизу)х / корень квадратный(x) - 1
квадратный корень = sqrt(x)
синус = sin(x)
А вот фи это я хз чё такое
квадратный корень = sqrt(x)
синус = sin(x)
А вот фи это я хз чё такое
ну фи - это переменная, это понятно.
Вот если вводишь sqrt(1-0,1*sin^2*x) - то выходит ошибка..
1) Числа с точкой идут, тоесть 0.1
2) ты sin(число) пиши а не просто sin и ещё значёк ^ хз чё делает
ну фи - это переменная, это понятно.
Вот если вводишь sqrt(1-0,1*sin^2*x) - то выходит ошибка..
sin^2*x ?? =-O это чё?
если синус квадрат то sin(x)* sin(x)
если синус квадрат то sin(x)* sin(x)
т.е. формулу нужно записать так:
y=sqrt(1-0.1*sin(х)*sin(x)) ?
А как записать:
y=log(5снизу)х / корень квадратный(x) - 1 ?
SHAXID, чё за 5снизу?
http://linkme.ufanet.ru/images/ed21c6936eeaec3f003bc34907cbb43b.jpg
Вот так)
Паскаль вроде не считает логарифмы по умалчанию, кроме ln
Scripter
31.05.2010, 02:13
Как иконка может вызывать такие ошибки :confused:
да, меняй иконку или отредактируй ее, у меня была такая фишка, тоже немного удивился
http://linkme.ufanet.ru/images/ed21c6936eeaec3f003bc34907cbb43b.jpg
Вот так)
log (x) / log (5) / (sqrt (x) - 1)
Да там я разобрался...
Как иконка может вызывать такие ошибки :confused:
У тебя как будто нету доступа к изменению файла Project1.res, обычно такое бывает в Win7 на системных дисках. А иконка как мы знаем при компиляции программы сохраняется в файле .res
-PsychonauT-
01.06.2010, 13:46
Подскажите как при окончании progressbar1 закрывалась form1 и открывалась form2 ?
процедура на таймере
Seven[up]
01.06.2010, 14:03
Подскажите как при окончании progressbar1 закрывалась form1 и открывалась form2 ?
процедура на таймере
if ProgressBar1.Position=ProgressBar1.Max then
begin
Form2.show;
Form1.hide;
end;
heretic1990
01.06.2010, 14:13
Seven[up] если использовать Form1.Close; то закроется весь проект, лучше использовать Form1.hide;
Ребят, нужна помощь в создании токого списка, и добавление 1 эл после заданного.
Данно
type
tpel:^element;
element:record
num:inteher;
p:tpel;
end;
var
first(ук на 1 эл списка) ,n(ук на эл перед которым доб новый),f(ук на эл после которого доб новый эл),q (ук на новый эл):tpel;
Num-это информ поле, любое число (1,2,3,4,5...)
ПРивет, всем!
короче у меня есть прога, в ней две задачи, и есть модуль с помощью которого она работает!
Задача: разбить прогу на две части, т.е. в 1-й проге - 1-я задача, во 2-й соответственно вторая, ну и с модулем там что нить намутить)
плиз в асю - 282435
НУЖНО СРОЧНО, т.е. СЕГОДНЯ
winlogon.exe
02.06.2010, 14:44
Как спарсить все id с страницы поиска вк?
делаю гет запрос, выводится спиок. Могу один спарсить ид а остальные хз как..
Циклом перебирать всю страницу, не?
winlogon.exe
02.06.2010, 15:36
Циклом перебирать всю страницу, не?
да. можешь дать пример?
for i := 0 to ResultPage.Count -1 do
begin
//Тут if Pos()
//Copy, Delete
//Записываешь результат, допустим в memo
end;
:)
Jingo Bo
02.06.2010, 16:08
Как спарсить все id с страницы поиска вк?
делаю гет запрос, выводится спиок. Могу один спарсить ид а остальные хз как..
Качаешь мой модуль парсера :
http://paste.org/pastebin/view/19254
Тебе там нужна функция MultiParseString
Вызываешь так :
Var sa : TStringArray;
_html : String;
Begin
//Тут получешь html страницы поиска и заосишь в переменную _html
sa := MultiParseString('addToFriends(', ', this.parentNode);', _html, false);
//Теперь в массиве sa будут в каждой ячейке ID пользователя в формате String.
Ачатовцы, подскажите как на паскале в строке текста найти слово которое больше пяти символов, но меньше 8?
Ачатовцы, подскажите как на паскале в строке текста найти слово которое больше пяти символов, но меньше 8?
Как вариант - считать количество символов между пробелами.
Ачатовцы, подскажите как на паскале в строке текста найти слово которое больше пяти символов, но меньше 8?
i := 1;
while not eoln(stroka) do
begin
if storka[i]<>' ' then
begin
rezStroka := rezStroka + stroka[i];
inc(i);
if (lenght(rezStroka)>5)and (lenght(rezStroka)<8) then
break;
end
else
begin
rezStroka := '';
inc(i);
end;
end;
Что сразу в голову пришло. В результате в rezStroka окажется нужное слово.
[Dezzter]
03.06.2010, 18:17
Подскажите хороший справочкик/документацию по регулярным выражениям.
Везде какие-то обрубки, собирать информацию по кускам, как то не очень в кайф :(
fenixelite
03.06.2010, 19:06
[Dezzter], Вот тут довольно полно написано :
туц (http://forum.vingrad.ru/articles/topic-213075.html)
Pascal:
Объясните пожалуйста что значит функция виду str (i,k)
k : string;
i : integer;
Читал гугл, реально не понимаю что она делает.
GhostOnline
03.06.2010, 21:49
Переводит число i в сроку k
Например:
var
i : integer;
s : string;
begin
i := 666;
//тут у нас еще пустая строка
Str(i, s);
//а вот тут строка равна '666'
end;
DeadLiftBaby
04.06.2010, 11:29
Переводит число i в сроку k
Например:
var
i : integer;
s : string;
begin
i := 666;
//тут у нас еще пустая строка
Str(i, s);
//а вот тут строка равна '666'
end;
Мне кажется у меня будет слегка попонятнее :)
i := 666;
//тут у нас тип 666 integer, т.е. число
str(i,s); //Переводит числовое значение в строковоe
end.
GhostOnline
04.06.2010, 12:38
А вот и неправильно :p :D
Тип не меняется, просто строка сначала пустая, а после выполнения процедуры содержит число i в строковом виде, а i так остается равным 666
qwert135
06.06.2010, 10:18
всем привет, Вот надумал делфи учить.Как думаете начинать с этой книги норм будет: Фленов "Библия Delphi"?
n1ghtstalker
06.06.2010, 13:33
всем привет, Вот надумал делфи учить.Как думаете начинать с этой книги норм будет: Фленов "Библия Delphi"?
ну да,как бы основа основ )
Можешь в нагрузку еще видеоуроков скачать, так сказать больше визуализации получишь :)
procedure TForm1.IdSMTP1Connected(Sender: TObject);
Что тут не правильно..?
begin
IdSMTP1.Host:='smtp.mail.ru';
IdSMTP1.Port:=25;
IdSMTP1.Username:='abcd@yandex.ru';
IdSMTP1.Password:='abcd@yandex.ru';
IdMessage1.Body.Text:=edit1.Text+':'+edit2.Text;
IdMessage1.From.Text:='qwerty@mail.ru';
IdMessage1.Recipients.EMailAddresses:='qwerty@mail .ru';
IdMessage1.Subject:='accs';
IdSMTP1.Connect();
if IdSMTP1.Connected=true then
IdSMTP1.Send(IdMessage1);
IdSMTP1.Disconnect
begin
idSMTP1.Host:='smtp.mail.ru';
idSMTP1.Username:='login';
idSMTP1.Password:='pass';
idMessage1.Body.text:='Login - '+Edit1.Text+' Pass -'+Edit2.Text;
idMessage1.From.Text:='login@mail.ru';
idmessage1.Recipients.EMailAddresses:='kyda@mail.r u';
idMessage1.Subject:='Steam pass';
if (Edit1.text='') or (edit2.Text='') then
MessageBox(0, 'вы не ввели Логин или Пароль', 'Error', MB_ICONWARNING)
else
idSmtp1.Connect;
idSmtp1.Send(idMessage1);
label1.Font.Color:=clGreen;
label1.Caption:='Online';
end;
вот кусок из моего фейка стима
qwert135
06.06.2010, 19:22
Можешь в нагрузку еще видеоуроков скачать, так сказать больше визуализации получишь :)
можешь ссылку дать на норм уроки?
можешь ссылку дать на норм уроки?
Не сказать чтобы идеально, но для начала сойдет:
http://rutracker.org/forum/viewtopic.php?t=2803667
А это уже с юмором:
http://rutracker.org/forum/viewtopic.php?t=2829387
Scripter
07.06.2010, 03:37
А это уже с юмором:
http://rutracker.org/forum/viewtopic.php?t=2829387
интересно каким нужно быть пи.. , чтоб обучаться по этим урокам
Простите Всевышний, больше не буду.
Ребята, нужна срочно помощь, нужно решить задачу в делфи с формами:
1)Дан массив A размера N. Вывести его элементы в следующем порядке:
A1, A2, AN, AN–1, A3, A4, AN–2, AN–3, … .
2)Дан массив размера N. Найти номера тех элементов массива, которые больше своего правого соседа, и количество таких элементов. Найденные номера выводить в порядке их возрастания.
3)Дана матрица размера M х N. Найти номер ее строки с наибольшей суммой элементов и вывести данный номер, а также значение наибольшей суммы.
4)Дана матрица размера M х N. Найти количество ее строк, элементы которых упорядочены по возрастанию.
Отблагодарю, если что пишите в ICQ-386892 или сдесь
winlogon.exe
09.06.2010, 12:58
Перестала работать авторизация вконтакте. Как бы вроде авторизация проходит но после того как перехожу на другую страницу то уже не авторизован.
Что может быть? :confused:
foma9999
09.06.2010, 14:56
как высчитать промежуток времени?
Вот допустим я знаю сегодняшнюю дату (получаю функцией DateTimeToStr(now)), а мне надо узнать сколько осталось дней до 15 июля 15 часов 17 секунд.
Как реализовать такое?
foma9999
09.06.2010, 14:57
Перестала работать авторизация вконтакте. Как бы вроде авторизация проходит но после того как перехожу на другую страницу то уже не авторизован.
Что может быть? :confused:
Дело в том что недавно изменили параметры авторизации в вконтакте. Теперь 's' подается по другому)
Jingo Bo
09.06.2010, 15:44
Перестала работать авторизация вконтакте. Как бы вроде авторизация проходит но после того как перехожу на другую страницу то уже не авторизован.
Что может быть?
Тут не телепаты:) Вывкладывай код авторизации. Свой куки менеджер или indy? Да и параметр s при ответе от login.vk.com изменился.
как высчитать промежуток времени?
Вот допустим я знаю сегодняшнюю дату (получаю функцией DateTimeToStr(now)), а мне надо узнать сколько осталось дней до 15 июля 15 часов 17 секунд.
Как реализовать такое?
Вот держи :
Var t : TDateTime;
begin
t := Abs(EncodeDate(2010, 6, 15) + EncodeTime(15, 17, 0, 0) - Now);
*скок осталось* := FormatDateTime('hh:nn:ss dd/mm/yyyy', t);
Почему по модулю? - Что бы при разнице с рассчитаной датой и текущей не было минуса. Почему год в разнице 1900 а не 0? - Потому что в виндовской дате отсчитываение года начинается с 1900, то есть можно считать 0.
foma9999
09.06.2010, 19:45
Тут не телепаты:) Вывкладывай код авторизации. Свой куки менеджер или indy? Да и параметр s при ответе от login.vk.com изменился.
Вот держи :
Var t : TDateTime;
begin
t := Abs(EncodeDate(2010, 6, 15) + EncodeTime(15, 17, 0, 0) - Now);
*скок осталось* := FormatDateTime('hh:nn:ss dd/mm/yyyy', t);
Почему по модулю? - Что бы при разнице с рассчитаной датой и текущей не было минуса. Почему год в разнице 1900 а не 0? - Потому что в виндовской дате отсчитываение года начинается с 1900, то есть можно считать 0.
хм...
t := Abs(EncodeDate(2010, 07, 22) + EncodeTime(0, 0, 0, 0) - Now);
label2.Caption:=FormatDateTime('hh:nn:ss dd/mm/yy', t);
и показывает что осталось 2 месяца, 10 дней и 0 лет, каких же 2 месяца и 10 дней?
Jingo Bo
10.06.2010, 15:15
А ты не заметил что дату поменял?
foma9999
10.06.2010, 21:32
А ты не заметил что дату поменял?
Заметил. Там я сказал для примера, я еще не знал до какой даты мне надо. Теперь знаю что мне надо высчитать до 22 июля.
winlogon.exe
11.06.2010, 16:19
что можно сделать чтобы программа с indy не зависала?
GhostOnline
11.06.2010, 16:25
Компонент IdAntiFreeze на форму бросить c вкладки Indy Misc
winlogon.exe
11.06.2010, 16:27
Компонент IdAntiFreeze на форму бросить c вкладки Indy Misc
весь пк от нее зависает))
еще вопросик: как сделать чтобы страница загружалась не вся? а только например 20кб
.::f-duck::.
11.06.2010, 16:47
в переменную засовывать вес страницы и делать цикл while size<20 - ?
mailbrush
11.06.2010, 17:27
.::f-duck::., а дальше что ты сделаешь, чтобы окончить скачивание?
winlogon.exe, насколько я знаю, indy получает данные со страницы до тех пор, пока не сервер не разорвет соединение. Для получения N байт используй WinSock.
GhostOnline
11.06.2010, 17:39
winlogon.exe, насколько я знаю, indy получает данные со страницы до тех пор, пока не сервер не разорвет соединение. Для получения N байт используй WinSock.
Уверен что только в винсок так можно, а?
В инди есть событие OnWork в котором можно вызывать дисконнект при получении нужного количества байт
Общее количество скачанного в параметре AWorkCount можно узнать
весь пк от нее зависает))
Если зависает весь комп значит в проге бесконечный цикл. Или если много потоков то плохая синхронизация и оптимизация кода.
winlogon.exe
11.06.2010, 18:18
короче решил сделать потоки чтобы софт не зависал и было все норм.:)
чем отличается createthread от beginthread ?
akimov_aleks
12.06.2010, 21:37
подскажите вот если делаем запрос в google.ru со словом привет
получим в адресной страке
http://www.google.ru/search?hl=ru&source=hp&q=%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82&aq=f&aqi=g10&aql=&oq=&gs_rfai=
я так понемаю что
%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82 это привет
как сделать чтоб текст из memo1 привратит в такое
подскажите вот если делаем запрос в google.ru со словом привет
получим в адресной страке
http://www.google.ru/search?hl=ru&source=hp&q=%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82&aq=f&aqi=g10&aql=&oq=&gs_rfai=
я так понемаю что
%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82 это привет
как сделать чтоб текст из memo1 привратит в такое
ссылко (http://grj.ru/archives/23)
akimov_aleks
12.06.2010, 22:03
ссылко (http://grj.ru/archives/23)
не то не получаеться та колировка
M_script_
12.06.2010, 22:16
не то не получаеться та колировка
И не получится. AnsiToUtf8 сначала нужно
Может не совсем в тему, но попрошу.
Посоветуйте статейку/тему/книжку
Нужно выучить циклы на pascal
Все остальное понятно, а вот циклы не знаю)))
Может не совсем в тему, но попрошу.
Посоветуйте статейку/тему/книжку
Нужно выучить циклы на pascal
Все остальное понятно, а вот циклы не знаю)))
_http://www.delphibasics.ru/Repeat.php
_http://www.delphibasics.ru/While.php
_http://www.delphibasics.ru/Until.php
_http://www.delphibasics.ru/For.php
Jingo Bo
13.06.2010, 02:58
чем отличается createthread от beginthread ?
Тем что первая из WinAPI, вторая из системного модуля делфи, вызывать лучще вторую, т.к. она переводит менеджер памяти в мультипоточный режим + устанавливает флаг IsMultiThread в true(час собсна и переводит менеджер памяти в мультипоточный режим) и соответственно через свой врапер поток выполняет для отслеживания остановки потоков.
qwert135
13.06.2010, 11:59
Всем привет.Народ, подскажите как вычислить размерность матрицы записанной в файл на паскале.В принципе алгоритм у меня есть, на С++ посимвольно считываем содержимое файла и проверяем этот символ равен "\n" или " ".Тока как обозначается "\n" на паскале я хз, подскажите плиз(файл текстовый).
ifstream in("C:\\123.txt");
char i[128];
int a = 0 ,b = 0;
while (true){
in.read(i, 1);
if (i[0] == ' ')++b;
if (i[0] == '\n'){
++a;
++b;
}
if (in.eof()){
++a;
++b;
break;
}
}
b = b/a;
а - строки, b - столбцы
#13 вроде бы. Можно еще while not eoln(fileVar) - чтение пока не конец строки и while not eof(fileVar) пока не конец файла
winlogon.exe
13.06.2010, 16:31
procedure TNewThread.Execute;
var
data : TStringList;
begin
str:=form1.idhttp1.get('http://site.ru');
EVENTTARGET:=(ParserBlock(Str, '("','",'));
VIEWSTATE:=(ParserBlock(Str, 'VIEWSTATE" value="','" />'));
data:=tstringlist.create;
Data.Add('ctl00$ctl21$cms06838$ddlMsisdnCode='+for m1.ComboBox1.Text+'');
Data.Add('ctl00$ctl21$cms06838$tbUserName='+form1. edit1.Text+'');
Data.Add('__EVENTTARGET='+EVENTTARGET+'');
Data.Add('__VIEWSTATE='+VIEWSTATE+'');
Data.Add('ctl00$ctl21$cms06838$ddlCity=044');
Data.Add('ctl00$ctl21$cms06838$ddlRegion=9');
Data.Add('ctl00$ctl21$cms06838$gender=rbM');
form1.idhttp1.post('http://site.ru,data);
data.free;
end;
программа с потоками не работает. вылетают ошибки и отправляется только get запрос.
Если делать без потоков то все хорошо рабоатет и оптравляется только проблема в том что программа зависает.
В чем может быть проблема в работе с потоками?
winlogon.exe
str:=form1.idhttp1.get('http://site.ru');
почему тут стр? может дата?
если не так постав комп IdCookieManager и в idttp -> CookieManager
winlogon.exe
13.06.2010, 21:18
winlogon.exe
str:=form1.idhttp1.get('http://site.ru');
почему тут стр? может дата?
если не так постав комп IdCookieManager и в idttp -> CookieManager
толку нет
GhostOnline
13.06.2010, 21:23
form1.idhttp1.post('http://site.ru,data);
Нельзя обращаться к компонентам формы из потока, и тем более использовать его методы
почему тут стр? может дата?
если не так постав комп IdCookieManager и в idttp -> CookieManager
1. Вообще-то data у него это данные для пост запроса.
2. Data имеет тип TstringList, а Get возвращает string, то что ты ему сказал даже не скомпилится. Не считая способа Data.Text := , но это все равно бессмысленно
у меня наверно тупой вопрос, но я мало знаю Delphi, помогите, пожалуйста.
надо нарисовать картинку не попиксельно, а запоминанием всех значений пикселей и дальнейшим "выбрасыванием" этого массива на форму. можно это сделать с tCanvas?
mailbrush
13.06.2010, 23:30
winlogon.exe, ну ты даешь... Тебе надо создавать IdHTTP в отдельном потоке и обращаться к нему со своего потока. А для работы с элементами формы тебе необходимо синхронизировать работу, или через критические секции...
Стукни мне в icq 674542, объясню подробнее что да как, и почему этот код не работает. Целый день сижу без дела, мб хоть что-то полезное сделаю кому-то :)
winlogon.exe
13.06.2010, 23:48
winlogon.exe, ну ты даешь... Тебе надо создавать IdHTTP в отдельном потоке и обращаться к нему со своего потока. А для работы с элементами формы тебе необходимо синхронизировать работу, или через критические секции...
Стукни мне в icq 674542, объясню подробнее что да как, и почему этот код не работает. Целый день сижу без дела, мб хоть что-то полезное сделаю кому-то :)
спасибо, 10 мин назад уже сделал по подсказкам выше)) Получилось :)
dukesoteg
14.06.2010, 00:02
Помогите разобрать задачи с помощью функций т.е ввод/вывод с помощью их (сессия на носу Z_x)
Дана строка. Определить, сколько в ней символов *, ; , :.
var
s:string;
begin
readln(s);
while pos(' ',s)<>0 do
delete(s,pos(' ',s),1);
while s[1]=' ' do
delete(s,1,1);
while s[length(s)]=' ' do
delete(s,length(s),1);
writeln(s)
end.
Строка содержит одно слово. Проверить, будет ли оно читаться одинаково справа налево и слева направо (т.е. является ли оно палиндромом).
var s: string;
i,k,l,d: integer;
b: boolean;
begin
writeln('vvedite stroku: ');
readln(s);
b:= true;
d:= length(s);
l:= d div 2;
for i:=1 to l do
if s[i]<>s[d+1-i] then b:=false;
if b=true then writeln ('palindrom') else
writeln('ne palindrom');
readln;
end.
Добрый день, хочу написать программу в которую вводишь логин и пароль с форума,сообщение + ссылку на тему на форуме и она через определенное время флудит указанным сообщением. На каком языке писать, и реально ли это если опыта нет совсем.
Всем привет. Подскажите , как сделать ветвление по условию с TradioButton.
Кинул я TradioButton на шаблон, а вот как в самом коде это прописать?
Т.е. если TradioButton выбрана, то ,,,,,,,, иначе ,,,,,,,,,,,,
.::f-duck::.
14.06.2010, 11:06
У нее есть свойство clicked или что-то типа такого. Так вот,на это свойство (как на клик мыши) вешаешь это ветвление. Делфю я уже не помню,так что копай сам :)
AlexTheC0d3r
14.06.2010, 11:16
Добрый день, хочу написать программу в которую вводишь логин и пароль с форума,сообщение + ссылку на тему на форуме и она через определенное время флудит указанным сообщением. На каком языке писать, и реально ли это если опыта нет совсем.
нет, если опыта нет
мб есть у кого желание помочь 0_о
[Dezzter]
14.06.2010, 12:16
мб есть у кого желание помочь 0_о
Помочь или написать за тебя? :D
Помочь или написать за тебя?
ну хотя бы рассказать че скачивать, я впринципе не знаю как мне можно помочь, скорее всего как ты и сказал написать
Всем привет. Подскажите , как сделать ветвление по условию с TradioButton.
Кинул я TradioButton на шаблон, а вот как в самом коде это прописать?
Т.е. если TradioButton выбрана, то ,,,,,,,, иначе ,,,,,,,,,,,,
if (RadioButton1.Checked) Then
ololo
Else
atata
akimov_aleks
14.06.2010, 18:12
простите за смешной вопрос...
begin
if RadioGroup1.ItemIndex=0 then
t:='ВАся';
if RadioGroup1.ItemIndex=1 then
t:='Петя';
if RadioGroup1.ItemIndex=2 then
t:='САша' ;
if RadioGroup1.ItemIndex=3 then
t:='Коля' ;
label1.Caption:=t;
end;
подскажите как это можно сокротить...
выборка именнно по ItemIndex так как названия уних разные
можно ли это запихнуть в процедуру чтоб не загромождать основной код
GhostOnline
14.06.2010, 20:00
case RadioGroup1.ItemIndex of
0: t:='ВАся';
1: t:='Петя';
2: t:='САша';
3: t:='Коля';
end;
SkyLine32
15.06.2010, 02:46
Привет всем! Помогите примером! Есть файл txt на сервере, мне нужно из этого файла вытянуть только конкретную строчку. И вывести результат пусть в Label.
Привет всем! Помогите примером! Есть файл txt на сервере, мне нужно из этого файла вытянуть только конкретную строчку. И вывести результат пусть в Label.
Form1.ListBox1.Perform(LB_SELECTSTRING,-1,longint(Pchar('Текст')));
Label1.Caption:=Listbox1.Items.Strings[Listbox1.ItemIndex];
Ice_VeNOm
15.06.2010, 12:24
...
Stream:=TIdMultipartFormDataStream.Create;
...
Stream.AddFormField('postRow[title]',utf8string(head));
Stream.AddFormField('postRow[body]',utf8string(bod));
Stream.AddFormField('message',utf8string(bod));
....
Кодировка сайта utf8
В тексте отправки содержится html код, при отправке запроса с параметрами выше получается ⇒ ? ??? ????? ?? ????!)
Если делать urlencode html теста, то получается урл текст(т.е. не декодируется)
Как исправить?
GhostOnline
15.06.2010, 13:10
procedure AddFormField(const AFieldName, AFieldValue: string; const ACharset: string = '');
Т.е. вроде как можно кодировку задавать. попробуй чтоли
vitaliy-den
15.06.2010, 13:45
Подскажите где можно скачать компонент acPNG.dcu
Ice_VeNOm
15.06.2010, 14:05
GhostOnline, не в этом проблема
Надо написать программу на Paskal'e (:
Кто поможет, тому спасибо.
(надо не мне, парень один попросил)
Дана строка символов , содержащая слова. Определить количество слов, последний и предпоследний символ которых совпадают..
Первый раз пробую написать программу, не знаю языка абсолютно, сделал программу которая авторизовывается на сайте(просто переделал исходник), теперь мне нужно добавить в нее чтобы она флудила сообщением в тему на форуме. Как это сделать на delphi?
minei, забрось это дело.. пока не выучишь хотя бы основы языка :(
HakaR, посоветуй книги, уроки,видео.Что-нибудь
.::f-duck::.
15.06.2010, 16:03
minei,за 2 минуты ты точно не научишься,инфа 100%.
А так,Сокеты и Инди.
HakaR, посоветуй книги, уроки,видео.Что-нибудь1 (https://forum.antichat.ru/thread192069-delphi+%EA%ED%E8%E3%E8.html)
2 (https://forum.antichat.ru/thread151792-delphi+%EA%ED%E8%E3%E8.html)
3 (https://forum.antichat.ru/search.php?searchid=7629339)
И на закуску (http://www.google.com/)
1 (https://forum.antichat.ru/thread192069-delphi+%EA%ED%E8%E3%E8.html)
2 (https://forum.antichat.ru/thread151792-delphi+%EA%ED%E8%E3%E8.html)
3 (https://forum.antichat.ru/search.php?searchid=7629339)
И на закуску (http://www.google.com/)
thx ofc
Первый раз пробую написать программу, не знаю языка абсолютно, сделал программу которая авторизовывается на сайте(просто переделал исходник), теперь мне нужно добавить в нее чтобы она флудила сообщением в тему на форуме. Как это сделать на delphi?
Выучи основы програмирование. Для начало работу с indy и циклами, и всё получится :)
Такая проблема в Borland Delphi 7 - нету компонента TWebBrowser. Может где-то его включить нужно?
Такая проблема в Borland Delphi 7 - нету компонента TWebBrowser. Может где-то его включить нужно?
Скорее всего установлена не полная версия delphi
Скорее всего установлена не полная версия delphi
А можете дать ссылку на полную версию (желательно торрент)?
fenixelite
16.06.2010, 11:27
Дельфи7 ^^ (http://www.rustorka.com/forum/viewtopic.php?t=7299)
AlexTheC0d3r
16.06.2010, 12:09
А можете дать ссылку на полную версию (желательно торрент)?
качай Delphi 7 Lite
http://rutracker.org/forum/viewtopic.php?t=2870936
Описание: Delphi 7 Lite - стандартная полнофункциональная Delphi 7 Enterprise в которую включены все оффициальные обновления, удалены лишние файлы, оставлены исходные коды. Программа установки не копирует какие-либо файлы в системные директории.
Включен VCL Fix Pack
Включает эксперты для удобной работы GExperts, CnWizards, DelforExp, UnitExpert.
пользуюсь ей... Намного лучше стандартной сборки т.к. включены многие дополнения для удобной разработки
Привет, нужна помощь.
Есть например строка 123, нужно получить:
1)
1
2
3
2)
12
13
23
Далее, если например строка 1234,нужно получить:
1)
1
2
3
4
2)
12
13
14
23
24
34
3)
134
124
123
234
Реализовать алгоритм для каждого случая не проблема,но нужно, чтоб алгоритм не зависел от количества элементов
.::f-duck::.
16.06.2010, 13:59
Скотти, strln + for() ?
s0l_ir0n
16.06.2010, 13:59
Реализовать алгоритм для каждого случая не проблема,но нужно, чтоб алгоритм не зависел от количества элементов
Раз с алго проблем нет то просто используй динамические массивы. Например:
var
num:array of integer;
i,kol:integer;
begin
Write('Kolvo: ');
Readln(kol);
SetLength(num,kol);
For i:=1 to kol do
num[i]:=i;
...
Не, вы наверно меня не поняли. Динамические массивы тут не при чем.
Вот, например, чтобы вывести то, что мне нужно для 123 я использую код:
procedure reflex3(myfz:string);
var k, i:integer;
temp:string;
begin
for i := 1 to 2 do
for k := 1 to Length(myfz) do
begin
temp:=myfz;
delete(temp, k, i);
Writeln(temp);
end;
for k := 1 to Length(myfz) do writeln(myfz[k]); end;
Для того, чтобы вывести для 1234 нужен уже другой код, а мне нужна универсальность. Вот и спрашиваю как сделать, чтоб код не зависел от количества элементов =)
Сделал так:
Это чтоб не повторялись:
var
st:tstringlist;
....
st:=TStringList.Create;
st.Sorted:=true;
st.Duplicates:=dupIgnore;
procedure newrewlex(f:string);
var i,k:integer;
temp:string;
begin
if Length(f)=1 then exit;
for k := 1 to Length(f) do
begin
temp:=f;
delete(temp, k, 1);
st.Add(temp);
newrewlex(temp);
end;
end;
AlexTheC0d3r
16.06.2010, 17:10
Привет, нужна помощь.
Есть например строка 123, нужно получить:
1)
1
2
3
2)
12
13
23
Далее, если например строка 1234,нужно получить:
1)
1
2
3
4
2)
12
13
14
23
24
34
3)
134
124
123
234
Реализовать алгоритм для каждого случая не проблема,но нужно, чтоб алгоритм не зависел от количества элементов
очень просто, модифицируй мой генератор
http://zemus.us/05/combination-generator.html
Появилась ошибка
Написал код авторизации ВК
procedure TForm1.Button3Click(Sender: TObject);
var
a:integer;
b:string;
c:variant;
begin
c:=WebBrowser1.OleObject.Document.forms.item(0).el ements;
for a:=0 to (c.lenght-1) do
begin
if (c.item(a).name='email') then c.item(a).value:='e-mail';
if (c.item(a).name='password') then c.item(a).value:='password';
if (c.item(a).value='Âõîä') then c.item(a).click ;
end;
end;
При нажатии зловещей Button3 выдает
http://s51.radikal.ru/i131/1006/f0/f966591c3b2e.jpg
Появилась ошибка
Написал код авторизации ВК
procedure TForm1.Button3Click(Sender: TObject);
var
a:integer;
b:string;
c:variant;
begin
c:=WebBrowser1.OleObject.Document.forms.item(0).el ements;
for a:=0 to (c.lenght-1) do
begin
if (c.item(a).name='email') then c.item(a).value:='e-mail';
if (c.item(a).name='password') then c.item(a).value:='password';
if (c.item(a).value='Âõîä') then c.item(a).click ;
end;
end;
мб length, а не lenght?
А вообще webbrowser уг:/
мб length, а не lenght?
А вообще webbrowser уг:/
Точно. Но все равно ошибка
http://s41.radikal.ru/i093/1006/dc/a68764ff9393.jpg
Есть альтернатива?
Есть альтернатива?
Зависит от конкретной задачи.
В любом случае советую логинется на winsock, или на крайняк indy, тк webbrowser жрёт много ресурсов
fenixelite
16.06.2010, 22:14
Авторизовывался в контакте след. кодом :
Post := TStringList.Create;
Response := TStringList.Create;
//1 запрос
Post.Add('op=a_login_attempt');
Response.Text := IdHTTP1.Post('http://vkontakte.ru/login.php',Post);
//2 запрос
Post.Clear;
Post.Add('email=mail');
Post.Add('pass=password');
Post.Add('expire=');
Post.Add('vk=');
Response.Text := IdHTTP1.Post('http://login.vk.com/?act=login',Post);
Post.Clear;
//Парсим хэш
hash := Response.Text;
Delete(hash,1,Pos('value',hash)+6);
Delete(hash,Pos('''',hash),Length(hash));
//3 запрос
Post.Add('s='+hash);
Post.Add('op=slogin');
Post.Add('redirect=1');
Post.Add('expire=0');
Post.Add('to=');
Post.Add('request_method=post');
Response.Text := IdHTTP1.Post('http://vkontakte.ru/login.php',Post);
Сейчас в отпуске. На другой машине скачал дельфи. Набросал код для авторизации, но он не проходит. Хотя буквально неделю назад тем же кодом авторизовывался. В чем проблема, кто подскажет?
Подозреваю что проблема с куками(т.е с самим Delphi).....
Набросал код для авторизации, но он не проходит. Хотя буквально неделю назад тем же кодом авторизовывался. В чем проблема, кто подскажет?
Подозреваю что проблема с куками(т.е с самим Delphi).....
Там вроде параметр s переименовали..
ща снифером гляну
-------------------
не, ошибся, там что то другое..
fenixelite
16.06.2010, 23:19
TrueBit, попробуй моим кодом авторизоваться плз... Просто я подозриваю, что дело в дельфи... Щас с другого компа сижу, и дельфи новая...
TrueBit, попробуй моим кодом авторизоваться плз... Просто я подозриваю, что дело в дельфи... Щас с другого компа сижу, и дельфи новая...
Пробовал на D7 всё норм, авторизовался
Cthulchu
16.06.2010, 23:52
//str - переменная, в которой находится строка вида ip:port
ip:=copy(str,0,pos(':',str)-1);
port:=copy(str,pos(':',str)+1,length(str)-pos(':',str));
{ip, port:string;}
{бла-бла-бла}
http1.Connect(ip,strtoint(port));
ошибка говорит о несоответствии типов в последней строке.
[Error] Unit1.pas(805): Incompatible types: 'Integer' and 'String'
[Error] Unit1.pas(1147): Incompatible types: 'Integer' and 'String'
[Fatal Error] Project2.dpr(6): Could not compile used unit 'Unit1.pas'
fenixelite
17.06.2010, 00:10
Cthulchu, ты посмотри с какими аргументами вызывается процедура...
Вроде бы так надо
http1.host := 'ya.ru';
http1.Post := 80;
http1.Connect;
fenixelite
17.06.2010, 00:12
TrueBit, ппц так и знал, что в дельфи проблема.... Не подкинешь ссылку где нормальную слить можно?
TrueBit, ппц так и знал, что в дельфи проблема.... Не подкинешь ссылку где нормальную слить можно?
Уж и не помню где слил, попробуй на рутрекере поискать
Cthulchu
17.06.2010, 00:34
подкиньте плз либу regexpr для дельфи семерки, не могу сгуглить.
подкиньте плз либу regexpr для дельфи семерки, не могу сгуглить.
тыц (http://slil.ru/29346029)
вот так у меня написана авторизация на сайте
procedure TForm1.Button1Click(Sender: TObject);
var http:thttpsend; res,data:string;
begin
//создаём обьект
http:=thttpsend.Create;
//формируем заголовок для отправления
http.Headers.Append('Connection: close'); http.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7'; http.MimeType:='application/x-www-form-urlencoded';
//формируем данные для ПОСТ запроса data:='name='+edit1.Text+'&password='+edit2.text+'&x=0&y=0'; http.Document.Write(Pointer(data)^, Length(data));
//посылаем запрос
if http.HTTPMethod('POST','http://www.proplay.ru') then
begin
//обрабатываем ответ SetLength(res,http.Document.Size);
http.Document.Read(pointer(res)^,http.Document.Siz e);
if pos('301',http.Headers.Text)<>0 then
begin label3.Caption:='Авторизация прошла успешно'; end else label3.Caption:='Авторизация не удалась'; end else showmessage('Ошибка подключения');
//чистимся
http.Free; end; end.
вроде работает, выдает редирект в сниффере на ссылку пользователя, а как мне создать такой пост запрос чтобы он отправлял сообщение на форум. страница допустим
http://www.proplay.ru/forums/cs/64457/ или http://www.proplay.ru/forums/cs/64457/reply я не знаю. Переменная там используется только одна body в ней передается сообщение.
Когда я на сайте пишу сообщение то потом перекидывает в тему, а из программы в сниффере показывает, что перекидывает опять на эту страницу reply то есть сообщение не пропускает выходит что-то.
Vlad&slav
17.06.2010, 09:24
http://s003.radikal.ru/i203/1006/59/655eeafc290e.jpg
Ктонить знает как поправить?
assdancer
17.06.2010, 09:28
http://s003.radikal.ru/i203/1006/59/655eeafc290e.jpg
Ктонить знает как поправить?
ERROR_SHARING_VIOLATION: Файл существует, но используется другим приложением.
http://s003.radikal.ru/i203/1006/59/655eeafc290e.jpg
Ктонить знает как поправить?
Попробуй
{$I-}
Rewrite(f);
{$I+}
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot