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:
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
Peter Lustig: Topic Verschoben