AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi [Erledigt]Totales Brett vorm Kopf: Problem mit 'end'
Thema durchsuchen
Ansicht
Themen-Optionen

[Erledigt]Totales Brett vorm Kopf: Problem mit 'end'

Ein Thema von inherited · begonnen am 12. Feb 2006 · letzter Beitrag vom 13. Feb 2006
 
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.906 Beiträge
 
Delphi 12 Athens
 
#23

Re: [Erledigt]Totales Brett vorm Kopf: Problem mit 'end'

  Alt 13. Feb 2006, 16:01
Hallo inherited!

Ich denke, die Ergänzung es IF von engine löst Dein Problem noch nicht vollständig.

Wenn ich Deinen Code richtig interpretiere, dann soll Dein TCP_Server auf den Befehl LOGIN hin überprüfen, ob der anzumeldende User (Rest des Loginstrings) sich anmelden darf, im Erfolgsfall soll 'VER:0.1' zurückgegeben werden, andernfalls 'loginnotok'.
Um dies zu realisieren, muß Dein ursprünglicher Code wie folgt geändert werden:


[...]


Delphi-Quellcode:
else if (Command[1]+Command[2]+Command[3]+Command[4]+Command[5]) = 'LOGINthen
    begin
      OK:=true;
      for i := 0 to ListBox1.Count-1 do if Uppercase(ListBox1.Items[i])=Copy(Command, 6, Length(Command)) then OK:=false;

      if ok then
      begin
        if (Copy(Command, 6, Length(Command)) = 'HAMSTER') or (Copy(Command, 6, Length(Command)) = 'IGEL') then
        begin
          ListBox1.Items.Add(Copy(Command, 6, Length(Command)));
          AThread.Connection.WriteLn('VER:0.1');
          lbProcesses.Items.Insert(0, 'Sending Command: loginok');
        end;
// end; [b](1) hier stand die Zeile ursprünglich[/b]
    end
    else
      begin
      AThread.Connection.WriteLn('loginnotok');
    end; // [b](2) und hier muß Zeile (1) hin[/b]
      end
    else if Command[1]+Command[2]+Command[3]+Command[4]+Command[5]+Command[6] = 'LOGOUTthen
[...]

Und dann noch eine Anmerkung zu Deiner Schleife, in der Du den User gegen die Einträge einer Listbox validierst:

[...]

      for i := 0 to ListBox1.Count-1 do if Uppercase(ListBox1.Items[i])=Copy(Command, 6, Length(Command)) then OK:=false; [...]

Da hier alle Listboxeinträge durchlaufen werden, bekommst Du in OK nur die Info, ob der letzte Eintrag Deiner Listbux dem User entspricht.
Ich vermute, OK soll genau dann FALSE werden, wenn ein beliebiger Eintrag in der Listbox dem USER entspricht.
Das kannst Du folgendermaßen realisieren:

>>>>>>>>>>>>>>>>>>>>>>

Delphi-Quellcode:
      for i := 0 to ListBox1.Count-1 do
        begin
          if Uppercase(ListBox1.Items[i]) = Copy(Command, 6, Length(Command)) then
          begin
            OK := false;
            break;
          end;
        end;
<<<<<<<<<<<<<<<<<<<<<<


hoffe, Dir hilft das noch ein bißchen weiter

MfG

onlinekater

[edit=alcaeus]Delphi-Tags eingefuegt. Mfg, alcaeus[/edit]
Thomas Breitkreuz
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz