AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wort in einem String suchen

Ein Thema von Pseudemys Nelsoni · begonnen am 21. Feb 2003 · letzter Beitrag vom 27. Feb 2003
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#11
  Alt 22. Feb 2003, 06:35
genau das was ich brauche, danke an alle
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#12
  Alt 22. Feb 2003, 19:58
Delphi-Quellcode:
procedure TForm1.IdIRC1Raw(Sender: TObject; AUser: TIdIRCUser; ACommand,
  AContent: String; var Suppress: Boolean);
var
  s: string;
  i: integer;
begin
  acontent := copy(acontent,LastDelimiter(' ', acontent)+1, length(acontent));
  if POS('+a', acontent) > 0 then
    begin
      for i := 0 to listbox1.Items.IndexOf(acontent) do
        begin
          sl1.AddObject(acontent, image10.Picture.Bitmap);
          sl2.Delete(i);
          listbox1.Clear;
          listbox1.Items.AddStrings(sl1);
          listbox1.Items.AddStrings(sl2);
        end;
    end;
    if POS('-a', acontent) > 0 then
      memo1.Lines.Add('jo');
end;
das 1. funzt wunderbar, aber das:

"if POS('-a', acontent) > 0 then
memo1.Lines.Add('jo');"

nicht, obwohl bei einem event "-a" vorkommt, wenn ich den ganzen oberen teil lösche und nur das

"if POS('-a', acontent) > 0 then
memo1.Lines.Add('jo');"

nehme gehts. Ist da was falsch dran?

btw: sl1 und sl2 sind zwei globale Stringlists

edit: color geht wohl nicht in nem delphiquote... lass es aber drin damit man weiss was gemeint is

gruss
Mario
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#13
  Alt 23. Feb 2003, 02:55
Moin Silent,

nach dieser Zeile

acontent := copy(acontent,LastDelimiter(' ', acontent)+1, length(acontent)); enthält acontent nur noch das, was nach dem letzten Blank in acontent gestanden hat, als es übergeben wurde.

Lass Dir doch einfach mal nach der o.g. Zeile mit ShowMessage ausgeben, was noch in acontent steht.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#14
  Alt 23. Feb 2003, 05:06
hallo christian, danke für die antwort !

hab das geändert in:

Delphi-Quellcode:
procedure TForm1.IdIRC1Raw(Sender: TObject; AUser: TIdIRCUser; ACommand,
  AContent: String; var Suppress: Boolean);
var
  Mode, Nick: string;
  Counter: integer;
begin
  Mode := Copy(acontent, 14, 2);
  Nick := Copy(acontent, LastDelimiter(' ' , acontent)+1, length(acontent));
  if Mode = '+athen
  begin
    for Counter := 0 to Listbox1.Items.IndexOf(Nick) do
    begin
      sl2.Delete(Counter);
      sl1.AddObject(Nick, image10.Picture.Bitmap);
      listbox1.Clear;
      listbox1.Items.AddStrings(sl1);
      listbox1.Items.AddStrings(sl2);
    end;
  end;
  if Mode = '-athen
  begin
    for Counter := 0 to listbox1.Items.IndexOf(Nick) do
    begin
      sl1.Delete(Counter);
      sl2.AddObject(Nick, image11.Picture.Bitmap);
      listbox1.Clear;
      listbox1.Items.AddStrings(sl1);
      listbox1.Items.AddStrings(sl2);
    end;
  end;
end;
geht aber noch immer nicht...also is bisschen schwer zu sehen was das sein soll....also es geht darum das ich beim dem mode "+a"(Admin)
den Nick aus der TStringlist2(Reg User) in die TStringList1(Admins) tue und von da aus in die Stringlist. Die Admins haben ein object(kleines bildchen) vor dem nick wenn ich aber "-a" mache passiert irgendwie gar nichtsalso user hat immer noch das object vor dem nick und is auch noch immer in StringList1.

"for Counter := 0 to listbox1.Items.IndexOf(Nick) do" müsste es hinten vielleicht heissen IndexOfObject? (habs schon probiert geht aber auch nicht. Reicht es überhaupt wenn ich den String aus der listbox lösche oder muss man auch das object davor extra löschen?

gruss mario
Mario
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#15
  Alt 23. Feb 2003, 13:29
Moin Mario,

was mir nicht so ganz klar ist:
Warum löscht Du alles bis zu dem Nick, löscht dann die gesamte ListBox, und fügst wieder beide Stringlisten hinzu?
Das geht ganz erheblich an die Resourcen.

Warum nicht:

Delphi-Quellcode:
// Beispiel
if sl2.IndexOf(Nick) > -1 then
begin
  sl2.Delete(sl2.IndexOf(Nick));
  sl1.AddObject(Nick,image10.Picture.Bitmap);
end;
Was die Objekte angeht:
Die werden bei Delete mit aus der Liste entfernt, und bei AddStrings auch mitgenommen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#16
  Alt 23. Feb 2003, 21:38
hallo christian,

ich benutze 2 stringlists (sorted) und füge sie in die listbox ein, die erste stringlist1(die admins) dann stringlist2(die regs). wenn ich alle direkt in die listbox packen würde wären admins und regs verteilt, z.b wär ein admin mit "Z" ganz unten und da ich alles von den strnglists nehme muss ich ja die listbox löschen oder nicht gibts da n anderen weg?
Ich könnte das so machen wie in deinem beispiel aber dann müsst ich das auch mit der stringlist machen, damit sie auch "aktuell" ist. =)

falls du das meinst mit nick löschen: "Nick := Copy(acontent, LastDelimiter(' ' , acontent)+1, length(acontent));"

jo ich muss ja den nick aus dem string finden, der ist ganz am ende als letztes wort

gruss mario ^^
Mario
  Mit Zitat antworten Zitat
e-dancer

Registriert seit: 21. Feb 2003
28 Beiträge
 
Delphi 6 Personal
 
#17
  Alt 24. Feb 2003, 18:08
versuchs mit stringreplace()
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#18
  Alt 26. Feb 2003, 06:44
thx edancer werde das mal versuchen, zuvor noch eins...ich erhalte immer einen fehler:

http://www.united-coding.de/fehler.jpg

der code an dem ganzen ist:

Delphi-Quellcode:
procedure TForm1.IdIRC1Raw(Sender: TObject; AUser: TIdIRCUser; ACommand,
  AContent: String; var Suppress: Boolean);
var
  Mode, Nick: string;
  Counter: integer;
  bmp: TBitmap;
begin
  Mode := Copy(acontent, 14, 2); // Nick aus "acontent" auslesen
  Nick := Copy(acontent, LastDelimiter(' ' , acontent)+1, length(acontent)); // Mode aus "acontent" auslesen
  if Mode = '+athen // Wenn mode "+a" ist
  begin
    for Counter := 0 to Listbox1.Items.IndexOf(Nick) do
    begin
      sl2.Delete(Counter); // Stringlist(sl2) löschen
      sl1.AddObject(Nick, image10.Picture.Bitmap); // String "Nick" mit Bild zur Stringlist(sl1) hinzufügen
      listbox1.Clear; // Listbox1 Strings löschen
      listbox1.Items.AddStrings(sl1); // Strings aus Stringlist(sl1) der Listbox1 hinzufügen
      listbox1.Items.AddStrings(sl2); // Strings aus Stringlist(sl2) der Listbox1 hinzufügen
    end;
  end;
  if Mode = '-athen // Wenn mode "-a" ist
  begin
    for Counter := 0 to listbox1.Items.IndexOf(Nick) do
    begin
      sl1.Delete(Counter); // Stringlist(sl1) löschen
      sl2.AddObject(Nick, image11.Picture.Bitmap); // String "Nick" mit Bild zur Stringlist(sl2) hinzufügen
      listbox1.Clear; // Listbox1 Strings löschen
      listbox1.Items.AddStrings(sl1); // Strings aus Stringlist(sl1) der Listbox1 hinzufügen
      listbox1.Items.AddStrings(sl2); // Strings aus Stringlist(sl2) der Listbox1 hinzufügen
    end;
  end;
end;
woher kommt dann der fehler?

gruss silent
Mario
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#19
  Alt 26. Feb 2003, 08:51
Änder mal beide
for Counter := 0 to Listbox1.Items.IndexOf(Nick) in
for Counter := 0 to Listbox1.Items.IndexOf(Nick)-1 Das könnte eventuell der fehler sein.
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#20
  Alt 26. Feb 2003, 08:58
Bzw. kommt mir dein Code komisch vor, speziell das hier:
Delphi-Quellcode:
for Counter := 0 to Listbox1.Items.IndexOf(Nick) do
    begin
      sl2.Delete(Counter); // Stringlist(sl2) löschen
      sl1.AddObject(Nick, image10.Picture.Bitmap); // String "Nick" mit Bild zur Stringlist(sl1) hinzufügen
      listbox1.Clear; // Listbox1 Strings löschen
      listbox1.Items.AddStrings(sl1); // Strings aus Stringlist(sl1) der Listbox1 hinzufügen
      listbox1.Items.AddStrings(sl2); // Strings aus Stringlist(sl2) der Listbox1 hinzufügen
    end;
Sollte das listbox1.clear nicht vor der for-Schleife stehen?

Ich versteh nicht so ganz was du da machst. Du löschst ListBox1, fügst ein paar Strings hinzu, löschst Listbox1, fügst ein paar Strings hinzu, löschst Listbox1...

Könntest du das mal genauer erklären?
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 11:34 Uhr.
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