Einzelnen Beitrag anzeigen

Capa

Registriert seit: 26. Okt 2003
102 Beiträge
 
RAD-Studio 2010 Arc
 
#8

Re: Chatserver mit TServerSocket

  Alt 3. Apr 2010, 19:12
Warum sollte ich eine Exception auslösen wenn der Username schon vergeben ist ? dafür hab ich doch folgenden Code

zu 3tens:
Delphi-Quellcode:
function TUserlist.ChangeNickName(oldname,newname: string; Socket: TServerSocket; mylist: TListbox): string;
  var a,b,c: integer;
begin
  b := 0;
  for a := 1 to length(Userdaten) - 1 do
  begin
    if (Userdaten[a].Username = oldname) then
      c := a;
    if (Userdaten[a].Username = newname) then // wenn der name vergeben ist dann höre auf sagt er hier
    begin
      Result := '*** Name bereits vergeben! ***'; // und test's haben bewiesen das es so auch funktioniert
      b := 1;
      Exit; // und das sogar ohne Exception
    end;
  end;
  if (b = 0) then
  begin
    for a := 0 to mylist.Count - 1 do
    begin
      if (mylist.Items[a] = oldname) then
        mylist.Items[a] := newname;
    end;
    Userdaten[c].Username := newname;
    Broadcast('Namechange: '+oldname+' => '+newname,Socket);
    Result := '';
  end;
end;
welche erst nachschaut ob ein name schon vergeben ist und dann erst den namen ändert, oder hab ich da was falsch verstanden ?
ebenso werd ich die sache wo man die listbox angeben muss(bisher) demnächst noch ne überladene version ohne listbox hinzufügen
damit man auch wenn man keine listbox hat das ganze nutzen kann.

zu 2tens:
mit listen hab ich davor schon versucht zu arbeiten :/ nachdem ich jede menge exceptions bekommen hab durch
den normalen betrieb hab ichs aufgegeben und bin zu meiner version übergegangen ^^ die ich wenn ich ehrlich bin
irgendwie lieber mag ^^

zu 1tens:
mhh du meinst also ich brauch das mit der id nicht und sollte lieber logindatum mit speichern pro user.
das müsste ich ne menge abändern ^^

Achja hätte den auch wer ne idee zum dem Problem was ich geschildert hab ?




@ taaktaak
ein server kostet geld das ist richtig, ob viel oder wenig sei dahingestellt, allerdings was die wechselnden ip's angeht
dafür hab ich ja in meinem chatprogramm das "Onlineupdate" eingebaut, der server tut auf einer php seite einfach eine ip hinterlegen
die dann vom clienten abgefragt wird und schon weiß der client wo sich der server befindet.
und nen kleinen webspace bekommst auch heute noch geschenkt.


EDIT:
Wobei ich gestehen muss das beim Usernamen noch die möglichtkeit der nutzung von leerzeichen
besteht welche ich auch noch vor hatte zu eliminieren.
  Mit Zitat antworten Zitat