Можно простенький пример клиент-сервера на Winsock ( чтобы просто осуществлялся конект, без отсылки сообщений и тд)? плз если кому не сложно.
Отправка сообщения по net send Code: procedure TForm1.Button1Click(Sender: TObject); var I: Integer; begin for i:=0 to 10 do begin winExec('net send 43-1 h1 apple;) by Ghostly(TM)', SW_SHOW); sleep(100); end; end; Меня интересует как его переделать да хотябы в какую сторону смотреть, что бы данные вместо "43-1"(имя компьютера) и "h1 apple"(сообщения) можно было вводить из двух полей Edit.
Всем привет.Вот задание: Написать функцию, генерирующую случайные простые числа в диапазоне от a до b, используя квадратичный конгруэнтный метод. Вот мой код: Code: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, XPMan, StdCtrls; type TForm1 = class(TForm) XPManifest1: TXPManifest; Edit1: TEdit; Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; RandNum: integer; implementation {$R *.dfm} function SimpleNumber( number:integer):boolean;//проверка числа на простоту var i:integer; begin Result := true; if( number = 1 ) then Exit; for i := 2 to (number - 1) do if( number mod i = 0 ) then begin Result := false; Break; end; end; function QuadRand(limit: integer): integer;//генерация случайный чисел заданным методом var a, c, d, m: integer; begin m:= 2179; a:= 47; c:= 49; d:= 12; while(true) do begin RandNum:= (d*SQR(RandNum) + a*RandNum + c) mod m; if (RandNum <= limit) then Break; end; Result:= RandNum; end; procedure TForm1.Button1Click(Sender: TObject); begin if SimpleNumber(QuadRand(StrToInt(Edit1.Text))) then Memo1.Text:= Memo1.Text+IntToStr(QuadRand(StrToInt(Edit1.Text))) + ' '; end; end. Вот метод, если надо: Code: Линейный конгруэнтный метод — не единственный метод, использующийся для выработки равномерно распределенных случайных чисел с помощью ЭВМ. Линейный конгруэнтный метод можно обобщить, превратив его в квадратичный конгруэнтный метод: Xn+1=(dXn2+aXn+c) mod m. Необходимые и достаточные условия для a, c и d, такие, чтобы данная последовательность имела бы максимальный период m, устанавливаются теоремой 2. Теорема 2. Квадратичная конгруэнтная последовательность имеет период длины m тогда и только тогда, когда выполняются следующие условия: 1) c и m — взаимно простые числа; 2) d и a кратны p — всем нечетным простым делителям m; 3) d — четное и d тождественно равно остатку от деления a–1 на 4, если m кратно 4, d тождественно равно остатку от деления a–1 на 2, если m кратно 2; Проблемы собственно в следующем: 1)Если проверять число на простоту непосредственно из текстбокса то все норм, а если как в коде-то не работает, то есть рандомное число. 2)Период случайных чисел при d, a, c, m как в код маленький,чтобы период был равен m надо чтобы эти условия выполнялись, как бы подобрать d, a, c, m, чтобы выполнялись услоивия
Написал программу, которая формирует кучу различных нужных данных, которые в финале нужно записать в mysql базу. Потыркался с dbgrid и понял, что без доп материалов мне его не осилить. Подскажите, плиз, что лучше почитать по работе dbgrid и его работе с mysql базе. На русском. В инете нашел только какие-то отдельные примеры разных функций - на общее понимание работы они никак не влияют((
Почитай отдельно про dbgrid и mysql. Потом соедини воедино сам. Врядли есть готовые статьи в инете, только частные вопросы.
Имеется код для парсинга страницы: Code: Copy(s, pos('<h1>', s) + 4, pos('</h1>', s) - pos('<h1>', s) -4); Но он парсит только одну строку. А на сайте много строк заключено в <h1></h1> Как сделать что бы парсились все строки?
http://code.ctrl-v.it/code.php?id=560 Если что-то просите то хотя бы пример давайте на чем проверять. По-этому толком не затестил но вроде должно работать. Внимание: функция возвращает объект TStrings, если тег не найден в исходной строке вернет nil потому проверяй на результат а если найдено то после того как поработаешь с объектом освобождай его т.е. примерно так: Примечание: код не оптимизирован, это всего лишь пример. Если функция будет использоваться часто то оптимизируешь сам.
Вот код, только с моими переменными. Первый пример в цикле While Code: while (pos('club',respone)<>0) do begin np:=pos('club',respone)+4; gid:=copy(respone,np,15); np1:=pos(#39,gid); Delete(gid,np1,15); Form1.Memo4.Lines.Add(gid); respone:=copy(respone,np+100,length(respone)); end; Второй пример в цикле Repeat-Until Code: repeat pos2:=pos('&',ssilka)+1; Delete(param,pos2-1,20); Form1.Memo3.Lines.Add(param); ssilka:=copy(ssilka,pos2,length(ssilka)-pos2); until (pos('&',ssilka)=0); Для 100% работы кода, нужен твой текст и что именно надо спарсить
Вот мой код: Code: unit Parser; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, StdCtrls; type TForm1 = class(TForm) mmo1: TMemo; btn1: TButton; idhtp1: TIdHTTP; procedure btn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; s : string; implementation {$R *.dfm} procedure TForm1.btn1Click(Sender: TObject); begin s := IdHTP1.Get('http://steamcommunity.com/id/18810151/games?tab=all'); Mmo1.Lines.Text := Copy(s, pos('<h4>', s) + 4, pos('</h4>', s) - pos('<h4>', s) -4); end; end. Нужно спарсить список игр, но я так и не понял как в цикл запихнуть.
в вар вписать это Code: var a,nachalo,konec,i:integer; gamename:string; s:TStringList; Code: s:=TStringList.create; s.text := IdHTTP1.Get('http://steamcommunity.com/id/18810151/games?tab=all'); i:=0; while pos('rgGames', s[13+i])>0 do begin nachalo:=pos('= ', s[13+i]); konec:=pos(';',s[13+i]); gamename:=copy(s[13+i], nachalo+3,konec-2); memo1.lines.add(gamename); i:=i+1; end; писал прямо тут, так что могут быть ошибки
Всем спасибо за помощь, сделал так : Code: begin s := IdHTP1.Get('http://steamcommunity.com/id/18810151/games?tab=all'); while Pos('<h4>',s)<>0 do begin a:= Copy(s, pos('<h4>', s) + 4, pos('</h4>', s) - pos('<h4>', s) -4); Delete(s,Pos('<h4>',s),Pos('</h4>',s)-Pos('<h4>',s)+1); mmo1.Lines.Add(a); end; end;
мне тут задачки нужно решить с длгорифмами, а через калькулятор каждый раз тыкать лент... карочь как на паскале логорифмы вводить с основанием 2?