Autor Beitrag
rabby
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 61

gentoo

BeitragVerfasst: Di 27.01.04 18:06 
hallo welt !

ziel: => ermitteln des geringsten abstands zwischen mehreren (2+) strings in nem großen text.
hab in delphi ne funktion angefangen, die mir alle vorkommnisse jedes einzelnen der suchbegriffe ermittelt und in arr:array[0..100, 0..100] of string ablegt
dabei ist arr[i][ 0 ] immer der gesuchte begriff, d.h. arr[i][j+1] sind die positionen.
soweit klappts auch schon...

aber danach soll das zeugs ausgewertet werden bzw alle möglichkeiten sollen versucht werden, sodass der geringste abstand ermittelt wird.

hierfür hab ich mir mal folgende schleifenanreihung gebastelt:

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:
34:
for i := 01 to suchworte.count do
begin
  if(arr[i][j]<>''then
  begin
  abstand_min:=length(sa);
  kl:=length(txt.text);
  gr:=0;
  for j := 01 to 100 do
  begin

    if(arr[i][j]<>''then
    begin
      for k := 01 to 100 do
      begin
        if(arr[k][0]<>''then
        begin
        for l := 01 to 100 do
        begin
          if(arr[k][l]<>''then
          begin
            wert:=strtoint(arr[k][l]);
            if(kl>wert)then kl:=wert;
            if(gr<wert)then gr:=wert;
          end;
        end;
        end;
        abstand_min:=(gr-kl);
      end;
    end;
  end;
  end;
end;
showmessage(inttostr(kl)+' - '+inttostr(gr));
showmessage(inttostr(abstand_min));


dabei musste ich leider feststellen, dass der größte vorkommende abstand ermittelt wird :-(
schade !
wie/was muss geändert werden, sodass der geringste abstand herausgefunden wird?

ich glaub der code is relativ einfach zu verstehen, ... -hoff ich zumindest...

bitte helft,
danke !

Moderiert von user profile iconPeter Lustig: Topic Verschoben
rabby Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 61

gentoo

BeitragVerfasst: Di 27.01.04 20:42 
hier noch ein beispiel:

text: abc def abc xyz abc def xyz
1.teilstring: ab
2.teilstring: yz

dabei sieht der arr dann so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
arr[0][0]:='ab';
arr[0][1]:='1';
arr[0][2]:='8';
arr[0][3]:='16';

arr[1][0]:='xy';
arr[1][1]:='13';
arr[1][2]:='25';



wenn man nun alle varianten versucht, so sollte die schleife feststellen, dass 5 der geringste abstand ist (arr[0][8] und arr[1][13]).

was mich nun interessiert is, wie man alle varianten durchprobiert, wenn es MEHR als 2 teilbegriffe sind.
also

arr[2][0]:='f';
nun muss auch noch berücksichtigt werden, dass auch dieser string dazwischen vorkommt...

weiß denn niemand rat?

Moderiert von user profile iconPeter Lustig: Delphi-Tags hinzugefügt