Autor Beitrag
niX
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Di 02.07.02 19:28 
Aaaaaaaalso...irgendwie muss ich nen Denkfehler [hab in letzter Zeit wohl zuwenig Schlaf abbekommen und bin leicht durchn Wind] haben, und zwar habe ich einen String der ständig erweitert und gekürzt wird(der hat immer genau 500 Zeichen), und aus diesem möchte ich nun Sachen herausfiltern und in eine memo-box tun. Bis yetzt hab ich's schon mit 2 versuchen probiert, aber so wirklich geht da nischts gut.
Ich paste mal so ungefähr den Code und versuch mal eben so zu erläutern was ich machn will.

ausblenden Quelltext
1:
procedure check(suchbegriff:string;vonpos:integer;bistaste:string;VorkommDerTaste: integer);					

{ suchbegriff, ist der erste begriff nachdem er suchen soll :) und vonpos soll die relative position von der Position des Suchbegriffes » also bsp.: wenn suchbegriff "test" ist und vonpos "2" dann soll er ab der zweiten position des suchbegriffs in die variable kopieren(oder eben umgekehrt, wenn vonpos negativ ist soll er auch noch den text von dem Suchbegriff kopieren).
bistaste soll der String sein, bis zu dem kopiert werden soll und VorkommDerTaste stellt dar, bei dem wievielten Vorkommen von bistaste das ende des kopierten ist. also wenn bistaste meintetwegen '[ent]' ist, und das VorkommDerTaste is '2' dann sollte er in "huoeiwhtest[ent]blabla[ent]irgendwas[ent]" bis nach dem blabla kopieren }
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
var temptxt:string;
   endpos,x:integer;
begin
  temptxt:=daten; {daten is der string der ständig erweitert/gekürzt wird}
if (pos(suchbegriff,temptxt) > 1) AND (pos(bistaste,temptxt) > 2) then
  begin
  if VorkommDerTaste = 1 then
  begin
Form1.Memo1.Text:=Form1.Memo1.Text+temptxt+#13+#10;
     end else
      begin
        endpos:=pos(bistaste,temptxt);
        for x:=VorkommDerTaste downto 0 do
        begin
          if (pos(bistaste,copy(temptxt,pos(bistaste,temptxt),(length(temptxt)-pos(bistaste,temptxt)))) > 3) then
              endpos:=endpos+pos(bistaste,copy(temptxt,pos(bistaste,temptxt),(length(temptxt)-pos(bistaste,temptxt))));
        end;
        if endpos>pos(bistaste,temptxt) then
          Form1.Memo1.Text:=Form1.Memo1.Text+copy(temptxt,(pos(suchbegriff,temptxt)+vonpos),(pos(bistaste,temptxt)-(pos(suchbegriff,temptxt)+vonpos)))+#13+#10
      end;
  end;

end;


PS: Letztendlich soll das Prog sowas wie ein Keylogger werden, der dann aber nur bestimmte Dinge bei mir Protokoliert. Wenn yemand eine ganz andere Lösung hat immer her damit.