Autor Beitrag
jonathanschmid
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 09.02.06 02:17 
Also 1.: Ich weiß leider nicht, wo ich das hier posten soll, also hab ichs mal in Sonstiges(Delphi) gepostet...
Naja, also ich hab mich mal an nem Badword-Filter versucht un habs au hingegriegt. Ich hatte nen ShortString-Speicherplatz, den ich raus genannt hab, in den mein Badword kam. Un jetzt hab ich ne Listbox mit vielen Badwords gemacht un dann wollt ich den Speicherplatz raus in ner Schleife mit nem Listbox Item belegen. Erst hab ich des mit ner geschachtelten Schleife probiert, dann kam aber alles doppelt... irgentwie logisch! Un dann hab ich no'n paar andre Sachen ausprobiert, hat aber alles net geklappt! :(
Also der Badword-Filter der noch funktioniert hat sieht so aus:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
procedure TForm1.Button1Click(Sender: TObject);
  var alttext,neutext,zeichen,muster,raus,rein:ShortString;
      i,lepos,rauslen,pos                     : Byte;
  begin
  alttext:=Edit1.Text;
  neutext:='';
  lepos:=Length(alttext);
  pos:=1;
  raus:='f***';
  rauslen:=Length(raus);
  rein:='f**k';
  for i:=0 to lepos do
    begin
    muster:=Copy(alttext,pos,rauslen);
    zeichen:=Copy(alttext,pos,1);
    if muster=raus then
      begin
      neutext:=neutext+rein;
      pos:=pos+rauslen
      end
                    else
      begin
      neutext:=neutext+zeichen;
      pos:=pos+1
      end
    end;
  Label1.Caption:=neutext;
  end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);     
  begin
  if Key=Chr(13then Button1.Click            //Kleines Extra: Bei Enter Submit :)
  end;


Auf dem User-Interface ist nur ein Textfeld und ein Button... Naja, und wie mach ich des jetzt mit der Listbox - voll mit bösen Wörtern?


Zuletzt bearbeitet von jonathanschmid am Do 09.02.06 17:13, insgesamt 1-mal bearbeitet
Bruder Lal
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 31

WIN XP
Delphi 2005
BeitragVerfasst: Do 09.02.06 21:44 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
var BadWords, NewWords: array[1..10of string;
// Füllen.. geht auch als Konstante
procedure badWord;
var i: Integer;
    s, s2: string;
begin
  s:=lowercase(Edit1.Text);
  for i:= 1 to 3 do
    if pos(BadWords[i], s)>0 then
    begin
      s2:=s;
      s:=copy(s2, 1, pos(BadWords[i], s2)-1);
      s:=s+NewWords[i];
      s:=s+copy(s2, pos(BadWords[i], s2)+length(BadWords[i]), length(s2));
    end;
  Edit1.Text:=s;
end;

müsste funktionieren..