Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi idIRC OnBan (https://www.delphipraxis.net/4395-idirc-onban.html)

Pseudemys Nelsoni 27. Apr 2003 13:48


idIRC OnBan
 
hoi,

kann mir jemand sagen wie ich den nick aus der address bekomme? z.b hier:

:: 14:41:35 :: * Silent sets mode: +b *!*@euirc-0a7a7387.pool.mediaWays.net


ich will das mein client den nick anzeigt von demjenigen auf die die adresse passt....müsste mit matchhostmask gehen, weiss aber nicht wie

gruss silent =)

sECuRE 27. Apr 2003 15:00

Delphi-Quellcode:
var i,c: integer; t:string;
begin
i:=ListBox1.Items.Count; c:=0;
while (c < i) do begin
t:=ListBox1.Items.item[c];
if (MatchHostMask(GetHostMask(t),BanMask)) then
<..code..>
c:=c+1;
end;
end;
ListBox1 ist in diesem Beispiel die Nicklist, mit GetHostMask bekommt man die HostMask des Users und mit MatchHostMask vergleicht man zwei Hostmasks.. genauer möchte ich das jetzt nicht beschreiben, da du sowieso eine Komponente dazu benutzt, da muss das ja irgendwie gehen ;)
hoffe das hat geholfen, cya

Pseudemys Nelsoni 27. Apr 2003 22:20

hoi, danke schonmal für die antwort, bekomme aber immer die fehlermeldung "undefinierter bezeichner gethostmask und banmask"

:(

gruss silent

Pseudemys Nelsoni 28. Apr 2003 01:03

wenn ich es so habe:

Delphi-Quellcode:
procedure Tdlg1.tscBan(Sender: TObject; AUser: TIdIRCUser;
  AChannel: TIdIRCChannel; AHostmask: String);
var
  i: integer;
  s: string;
begin
  for i := 0 to dlg11.ListBox1.Items.Count-1 do
  begin
    s := dlg11.ListBox1.Items.Strings[i];
    if tsc.MatchHostmask(PChar(s), PChar(ahostmask)) then
  dlg11.Memo1.Lines.Add('::: ' + auser.Nick + ' sets ban on ' + s);
  end;
end;
funzt es nicht :(

sECuRE 28. Apr 2003 17:03

Zitat:

Delphi-Quellcode:
* for i := 0 to dlg11.ListBox1.Items.Count-1 do
* begin
* * s := dlg11.ListBox1.Items.Strings[i];
* * if tsc.MatchHostmask(PChar(s), PChar(ahostmask)) then
* dlg11.Memo1.Lines.Add('::: ' + auser.Nick + ' sets ban on ' + s);
* end;
end;

da liegt der fehler. du kannst nicht die hostmask mit einem nickname vergleichen. du musst erst die hostmask des nicknames herausfinden, weis allerdings nicht wie das mit deiner komponente geht.. kannst ja mal in der hilfedatei schauen, wie man die hostmask eines users bekommt.

Zitat:

hoi, danke schonmal für die antwort, bekomme aber immer die fehlermeldung "undefinierter bezeichner gethostmask und banmask"
hmmm.. vielleicht weils die funktion & variable garnich gibt? ;) 'n bischen eigenarbeit muss schon sein, du musst das selbst angleichen.. schließlich hab ich deinen code nicht vorliegen, und das sollte lediglich eine denkanregung sein :)

Pseudemys Nelsoni 29. Apr 2003 15:07

danke :)

klappt jetzt so:

Delphi-Quellcode:
procedure Tdlg1.tscBan(Sender: TObject; AUser: TIdIRCUser;
  AChannel: TIdIRCChannel; AHostmask: String);
var
  i: integer;
  s, ahost, bnick: string;
begin
  for i := 0 to dlg11.ListBox1.Items.Count-1 do
  begin
    ahost := ahostmask;
    s := tsc.Users.Address(dlg11.listbox1.Items.Strings[i]);
    Repeat
      Delete(ahost, 1, 1);
      until ahost[1] = '@';
    delete(ahost, 1, 1);
    Repeat
      Delete(s, 1, 1);
    until s[1] = '@';
    delete(s, 1, 1);
    if tsc.MatchHostmask(PChar(s), PChar(ahost)) then
    begin
      bnick := dlg11.ListBox1.Items.Strings[i];
      dlg11.Memo1.Lines.Add('::: ' + auser.Nick + ' sets ban on ' + bnick);
    end;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz