Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Alle Wörter aus einem String in eine Listbox (https://www.delphipraxis.net/3293-alle-woerter-aus-einem-string-eine-listbox.html)

Hansa 7. Mär 2003 19:23

Zitat:

Zitat von silent
ist bisschen viel oder? :(

Nö. :P Du gehst nur falsch an das Problem ran. Versuche zuerst einmal alle Nicks mit @,! oder was weiß ich, in die Listbox reinzukriegen. :!: Dann ist Dein Programm vorerst auch nur so groß wie meines. Danach kannst Du dann immer noch anhand der Prefixe entscheiden, was gemacht werden muß, im Stile von:
Code:
CASE prefix OF
  '@' : showmessage ('S|OP');
...
END;
Verdammt nochmal, mach in meinem Bsp. ans Ende des Strings noch ein Leerzeichen, und guck, daß Du die Box gefüllt kriegst. :wink: Vorher wird das sonst nie was.

P.S.: Hab mir nochmal Deinen Quelltext angesehen.
Code:
if then else if then else if then else...
ist genau das, was ich gerade mit Case gemeint habe. Lese Dir mal durch, wie das genau geht. Kann es sein, daß Du vorher mal Basic gemacht hast ?

Pseudemys Nelsoni 7. Mär 2003 19:55

jo visual basic 6 einsteiger edition *g*
das problem ist, das ich nie mit case anweisungen gearbeitet hab und nicht weiss wie sie funktionieren

gruss mario :)

Hansa 7. Mär 2003 20:56

Dein Programmierstil hat Dich entlarvt. :mrgreen: Sowas sagt man aber vorher und läßt sich nicht erst erwischen. :lol: In der Hilfe steht ein Beispiel, bei mir allerdings in Englisch. Kannst Du das nicht, die Code-Beispiele sind trotzdem ziemlich eindeutig.

Pseudemys Nelsoni 7. Mär 2003 21:53

ja hätt ichw ohl zugeben solln, aber dann würd ich hier zum tod verurteilt werden <g>

btw: hab die caseanweisungen in der delphi hilfe gelesen, ich weiss nur nicht genau was sie bringen :oops:

gruss mario

Hansa 8. Mär 2003 00:33

Zitat:

Zitat von silent
...aber dann würd ich hier zum tod verurteilt werden

Echt? :shock: Oh je, ist das so gefährlich hier ? Schlimm, schlimm, lesen kann ich Deine Bücher trotzdem nicht.

Pseudemys Nelsoni 8. Mär 2003 01:01

meine bücher? O_o

Pseudemys Nelsoni 8. Mär 2003 16:24

hab das nochmal geändert

Delphi-Quellcode:
procedure TForm1.IdIRC1Raw(Sender: TObject; AUser: TIdIRCUser; ACommand,
  AContent: String; var Suppress: Boolean);
var s: string;
begin
  s := acontent;
  if acommand = '353' then
  begin
    Repeat
      Delete(s, 1, 1);
    until s[1] = ':';
    delete(s, 1, 1);
    Repeat
      if s[1] = '!' then
      begin
        SlAdmin.AddObject(Copy(s, 1, Pos(' ', s)), image13.Picture.Bitmap);
        while s[1] <> ' ' do
          delete(s, 1, 1);
        delete(s, 1, 1);
      end;
    until s = '';
    listbox1.Items.AddStrings(SlAdmin);
  end;
end;
also erst lösch ich alles bis zum ":", dann das ":" selbst dann will ich prüfen ob das 1 zeichen des wortes ein "!" ist, wenn ja dann will ich den nickin die stringlist SlAdmin tun...und dann die striglist in die listbox....stürzt aber ab, ist das ne endlosschleife?

Das ist für das "!". Ich müsste das ganze auch mit "@" "%" "+" und wenn kein prefix vo dem nick ist machen

gruss silent

Hansa 8. Mär 2003 16:59

Delphi-Quellcode:
    Repeat  // <-- ab hier wirds kritisch
      if s[1] = '!' then <------------------- Endlosschleife
      begin
        SlAdmin.AddObject(Copy(s, 1, Pos(' ', s)), image13.Picture.Bitmap);
        while s[1] <> ' ' do
          delete(s, 1, 1);
        delete(s, 1, 1);
      end;
    until s = '';
    listbox1.Items.AddStrings(SlAdmin);
  end;
end;
Zitat:

also erst lösch ich alles bis zum ":", dann das ":"
Genau :!:

Zitat:

Ich müsste das ganze auch mit "@" "%" "+" und wenn kein prefix vo dem nick ist machen
Genau :!: Dann kommt nämlich das Case ins Spiel und dann blickst Du wieder durch. :mrgreen:

Nur : was passiert denn, wenn st[1] <> '!', wird die Repeat Schleife dann jemals beendet :?:

Pseudemys Nelsoni 8. Mär 2003 17:30

dachte eigtnlich schon das sie beendet wird, da "delete(s, 1, 1);
" doch das "!" löscht und beim nächsten durchgang das "if s[1] = '!' then" doch nichtmehr zutrifft oder?

Hansa 8. Mär 2003 17:41

Delphi-Quellcode:
   s := 'HÄ?'
    Repeat  
      if s[1] = '!' begin
...
      end;
    until s = '';
s[1] wird bis zum Tod Deines Rechners wohl oder übel 'H' sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:24 Uhr.
Seite 3 von 4     123 4      

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