Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi String aus einer Stringlist löschen (https://www.delphipraxis.net/3398-string-aus-einer-stringlist-loeschen.html)

Pseudemys Nelsoni 10. Mär 2003 14:16


String aus einer Stringlist löschen
 
moin,

Delphi-Quellcode:
   
begin
  if SlReg.IndexOf('ufc_user') > -1  then
  SlReg.Delete(SlReg.IndexOf('ufc_user'));
  memo1.Lines.AddStrings(SlReg);
end;
kann mir jmd sagen was daran falsch ist? der string "ufc_user" ist nachdem "löschen"(was es ja nicht tut) immernoch in der Stringlist

gruss silent

oki 10. Mär 2003 15:16

Hi,
also erstmal sieht daran nichts schlecht aus. Vielleicht hast Du auch nur einen Denkfehler.

Wenn zum Bsp. der Eintrag nicht gefunden wird, dann bleibt das Löschen aus und in Deinem Memo werden alle Einträge angezeigt.

Prüf erst mal im Debugger oder anderweitig ob Deine Abfrage einen Rückgabewert größer -1 liefert.

Gruß oki

sakura 10. Mär 2003 15:18

Mal eine Frage, ist der String u.U. mehrmals vorhanden. Dann mach es doch lieber so:
Delphi-Quellcode:
Idx := SlReg.IndexOf('ufc_user');
while Idx > -1 do
begin
  SlReg.Delete(Idx);
  Idx := SlReg.IndexOf('ufc_user');
end;
...:cat:...

Pseudemys Nelsoni 10. Mär 2003 16:11

hoi,

ne, der string ist nur einmal vorhanden

Delphianer 10. Mär 2003 16:20

Hallo,

erste Frage:
Was ist SlReg, TStringList?

zweite Frage:
Kann es daran liegen, daß Du memo1 nicht löschst und quasi den alten Eintrag noch siehst?

Ansonsten wäre etwas mehr Quelltext hilfreich.

Viele Grüße

Pseudemys Nelsoni 10. Mär 2003 17:19

hi, jo ist ne stringlist. Das memo ist am anfang leer, ich füge das nur der memo hinzu, um zu sehen ob die stringlist leer ist....was sie ja nicht ist da der string dann auftaucht....also der ganze "code" sieht so aus:

Delphi-Quellcode:
  if acommand = 'MODE' then
  begin
    Repeat
      Delete(s, 1, 1);
    until s[1] = ' ';
    Delete(s, 1, 1);
    Mode := Copy(s, 1, 2);
    if Mode = '+a' then
    begin
      nick := Copy(s, LastDelimiter(' ' , s)+1, length(s)); // Das letzte wort(der nick) des strings in die variable "nick"
      SlAdmin.AddObject(nick, image13.Picture.Bitmap); // der nick in die admin stringlist
      if SlReg.IndexOf(nick) > -1  then
      SlReg.Delete(SlReg.IndexOf(nick)); // den nick aus der stringlist "slreg"(normale benutzer) löschen
      listbox1.Clear;
      listbox1.Items.AddStrings(SlAdmin);
      listbox1.Items.AddStrings(SlReg);
      memo1.Lines.AddStrings(SlReg); // zum testen ob SlReg noch den string enthält
    end;
  end;
end;
so sieht das aus. die stringlists sind glboal definiert

aber das löschen geht nicht
[Edit=FuckRacism]Syntax verbessert[/Edit]

Delphianer 10. Mär 2003 19:30

Hallo,

versuche doch mal folgendes:

if SlReg.IndexOf(nick) > -1 then begin
memo1.Lines.Add('Lösche');
memo1.Lines.Add(IntToStr(SlReg.Count));
SlReg.Delete(SlReg.IndexOf(nick));
memo1.Lines.Add(IntToStr(SlReg.Count));
end;

Wenn da immer noch nichts zu finden ist, müßtest Du mal noch etwas mehr von Deinem Quelltext offenlegen. Falls Du das nicht willst und Dich damit anfreunden kannst, mir das Ganze mal als EMail zu senden..

Viele Grüße

Pseudemys Nelsoni 10. Mär 2003 19:41

es kommen 2 lines
einmal "ufc_user" dann eine leere zeile
Ich würds dir gern schicken aber mit dem code würdst du nicht klarkommen so wie ich (als anfänger) das mache *g*

gruss silent :)

Delphianer 10. Mär 2003 19:47

Kommt auf einen Versuch an.

Ich habe gerade meine EMail-Adresse freigeschaltet, ich brauche alle pas, dfm und dpr.

Pseudemys Nelsoni 10. Mär 2003 20:03

hast due die indy kompos?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr.
Seite 1 von 2  1 2      

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