Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit Bedingung in einer While-Schleife (https://www.delphipraxis.net/46534-problem-mit-bedingung-einer-while-schleife.html)

MrBona 26. Mai 2005 17:51


Problem mit Bedingung in einer While-Schleife
 
Also... ich hab hier folgendes:
Delphi-Quellcode:
  if Prot = 'l:' then
  begin
    ChatUserOutput.Clear;
    if NewMsg = '' then
    begin
      NewMsg := Msg
    end;
    while TPos := Pos('~', NewMsg) do
      User := Copy(NewMsg, 1, TPos-1);
      ChatUserOutput.Items.Add(User);
      NewMsg := Copy(NewMsg, TPos+1, length((NewMsg - length(User)) - 1);
    end;
  end;
Mein Problem ist, das die Bedingung der while Schleife kein boolean ist. In anderen Programmiersprachen wie etwa PHP hat nämlich eine Zuweisung einen Rückgabewert von true oder false. In Delphi wohl leider nicht. Wie kann ich das also machen?
Danke schonmal für die Hilfe ;)

brechi 26. Mai 2005 17:54

Re: Problem mit Bedingung in einer While-Schleife
 
mussu aufteilen

Delphi-Quellcode:
while pos('~',newmsg) > 0 then
begin
  tpos := pos('~',newmsg);
end;

oder halt mit einer repeatschleife machen

LoL 26. Mai 2005 17:55

Re: Problem mit Bedingung in einer While-Schleife
 
Die Abfrage einer While schleife muss von Typ Boolean sein! Was du gemacht hast ist eine zuweisung!

Delphi-Quellcode:
while Pos('~', NewMsg) > 0 do
~
end;

marabu 26. Mai 2005 18:33

Re: Problem mit Bedingung in einer While-Schleife
 
Noch eine Möglichkeit wäre:

Delphi-Quellcode:
if Prot = 'l:' then begin
  ChatUserOutput.Clear;
  if NewMsg = '' then
    NewMsg := Msg;
  while NewMsg <> '' do begin
    TPos := Pos('~', NewMsg);
    if TPos = 0
      then User := NewMsg
      else User := Copy(NewMsg, 1, TPos-1);
    ChatUserOutput.Items.Add(User);
    if TPos = 0 
      then Break
      else Delete(NewMsg, 1, TPos);
  end;
end;
Grüße vom marabu

MrBona 26. Mai 2005 20:02

Re: Problem mit Bedingung in einer While-Schleife
 
So, danke erstmal... Ich habs jetzt hinbekommen. :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:57 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