Kategori Arşivi Delphi

Delphi : Metni bölmek – explode

type
  TStrArray = array of string;
function Explode(var a: TStrArray; Border, S: string): Integer;
var
  S2: string;
begin
  Result  := 0;
  S2 := S + Border;
  repeat
    SetLength(A, Length(A) + 1);
    a[Result] := Copy(S2, 0,Pos(Border, S2) - 1);
    Delete(S2, 1,Length(a[Result] + Border));
    Inc(Result);
  until S2 = '';
end;
procedure TForm1.btn1Click(Sender: TObject);
var 
A:TStrArray;
metin:string;
begin
metin:= 'elma,armut,üzüm';
 
Explode(A, ',', metin);
 
showmessage(A[1]);
// sonuç armut;
end;

Delphi : Metin içinde arama Fonksiyonu

Uses strutils;
 function CountStr(const ASearchFor, ASearchIn : string) : Integer;
var
  Start : Integer;
begin
  Result := 0;
  Start := Pos(ASearchFor, ASearchIn);
  while Start > 0 do
    begin
      Inc(Result);
      Start := PosEx(ASearchFor, ASearchIn, Start + 1);
    end;
end;
procedure TForm1.btn1Click(Sender: TObject);
var 
sonuc:integer;
metin:string;
begin
metin:= 'Merhaba dünya!';
 
sonuc := CountStr('dünya', metin);
// sonuç 1;
sonuc := CountStr('Nerede?', metin);
// sonuç 0;
end;

IdHTTPProxyServer Basic Authentication

HTTPBeforeCommand event ına aşağıdaki kod ile istemciye şifre doğrulama ekranı gönderebilirsiniz. Gelen header bilgisi ile doğrulama işlemini yapabilir ve oturum kaydı tutabilirsiniz.

      AContext.Connection.IOHandler.WriteLn('HTTP/1.1 407 Proxy Authentication Required');
      AContext.Connection.IOHandler.WriteLn('Proxy-Authenticate: Basic realm="Proxy Kullanıcı Bilgileri"');
      AContext.Connection.IOHandler.WriteLn('Content-Length: 0');
      AContext.Connection.IOHandler.WriteLn('Connection: close');
      AContext.Connection.IOHandler.WriteLn('');
      Acontext.Connection.Disconnect;

IdHTTPProxyServer IP adresine göre bağlantı izini verme

IdHTTPProxyServer bileşeninin OnConnect Event ına aşağıdaki kodları girerek sadece izin verilen IP adresinden gelen bağlantıların ProxyServer üzerinden geçiş yapmasına izin verebilirsiniz.

if acontext.Connection.Socket.Binding.PeerIP <> '192.168.2.10' then
acontext.Connection.Disconnect;