А по ВинАпи толковый справочник(желательно с примерами) у кого-нибудь есть , а то нашёл пару штук , половины функций в них нет .
А вот и у меня вопрос возник Это конечно не критично, но всё же: Как получить указатель на функцию из стандартных модулей, например, на функцию sin? Я делал так: Code: type num = Extended; TFunc = function(x: num):num; var p: TFunc; ...... function sinus(x: num):num; begin result := sin(x); end; ...... p := @sinus; А хочется чего-нибудь типа Code: p := @System.sin; ,но так оно не работает.
{ Это простой пример, определяющий массив указателей на функции } interface type { определяем Procs как функцию } Procs = function(var ProcNum: LongInt): LongInt; var { объявляем массив указателей на функции } ProcTable: array[1..5] of Procs; { определения интерфейсов функций } function Proc1(var MyVal: LongInt): LongInt; far; function Proc2(var MyVal: LongInt): LongInt; far; function Proc3(var MyVal: LongInt): LongInt; far; function Proc4(var MyVal: LongInt): LongInt; far; function Proc5(var MyVal: LongInt): LongInt; far; Ну или посмотри здесь _http://www.soft32.ru/delphi.shtml?topic=syntax&title=function_pointer
В том-то и дело, что мне нужно обратиться не к моей собственной функции, а к стандартной типа sin, cos, abs и т.п. Так, как ты пишешь, я и сделал (см. приведённый мной пример), но мне интересно, как сделать это непосредственно...
Просто когда много таких вызовов, очень не хочется для каждой функции создавать "переадресацию"... Так-то я и сделал, а теперь оптимайзю
Тебе важны сами алгоритмы или их реализации на DELPHI?? ------------------------- Вот посмотри еще: Code: _http://inf.nm.ru/lokalno.htm _http://www.3dnews.ru/software/win-xp-encrypting/index2.htm _http://www.openwall.com/john/ _http://www.connect.ru/article.asp?id=6641 _http://www.web-hack.ru/download/index.php?case=4 _http://book.itep.ru/6/des_641.htm _http://www.kursovik.net/programming/290019.html
Подскажите плз как изменить что бы не было повторов в найденом? ВОт код: Code: procedure poisk; var S, Q: TStrings; I, J: Integer; begin S := TStringList.Create; Q := TStringList.Create; S.LoadFromFile('C:\bla-bla.txt'); I := 0; J := 0; while I<S.Count-1 do begin if Pos('string 1', S.Strings[I])<>0 then begin Q.Add(S.Strings[I]); Inc(I); Inc(J); Q.Add(S.Strings[I]); Q.Add(''); end; Inc(I); end; if J>0 then begin Q.Insert(0, ''); Q.Insert(0, DateToStr(Now)); Q.Insert(0, 'Naydenno '+IntToStr(J)+' strok'); Q.SaveToFile('c:\result.txt'); end; S.Free; Q.Free; end;
Зачем так - он у тебя последнюю строку не проверит! пиши так Code: while i<S.count или Code: while i<=s.count-1 А что бы в result.txt не было повторов сделай повторный поиск поэтому файлу =============================== Code: procedure poisk; var SL,Ish: TStringList; i:integer; begin ISH:=TstringList.Create; ISH.LoadFromFile('d1.txt'); SL := TStringList.Create; with SL do try Sorted := True; For i:=0 to ISH.Count-1 Do Begin SL.Add(ISH[i]); end; Duplicates := dupIgnore; sl.SaveToFile('result.txt'); finally Free; end; end; ----------------------------- Удаляет все дубликаты и сохраняет в result.txt А чего ты именно хочешь?() Вывести сколько раз в файле встречается строка String 1?