Hallo,
ich suche eine Möglichkeit die Anzahl übereinstimmender Häufungen von bestimmten Buchstaben(Min. 3 Zeichen) in einem Text zu finden.
Beispiel:
ABCDE EFGHI JKLMN ZDHDH FHFJDS ABCEJ KJABC JDGFA
BCKFH JABCE JDHFZ QHJDF ABDCDE FHAIF DASEA HJFAB
CDEFG HIJKL MNOPQ RSTUV usw..
In dem obigen Beispiel gibt es ABC 5x in dem gesamten Text. Daraufhin benötige ich
den Abstand zwischen den ABC's.
Habt ihr eine Idee wie ich das Anstellen kann?
Ich hab es so probiert, aber das ist wahrscheinlich der größte schei*
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| Memo1.Text := StringReplace(Memo1.Text, ' ', '', [rfReplaceAll, rfIgnoreCase]);
t_lines := Memo1.Lines.Count; t_letters := Memo1.GetTextLen;
Edit1.Text := inttostr(t_lines); Edit2.Text := inttostr(t_letters);
position := 1;
while position <= length(memo1.lines.text) do begin currentchar := copy(memo1.lines.text, position, 3); for i:=0 to t_lines do begin Edit3.Text := inttostr(pos(currentchar, Memo1.Lines[i])); memo2.Lines.Add(Edit3.Text); end;
position := position+1; end; |
Ich bräuchte folgende Ausgabe:
ABC 5 1,26,39 : Abstandszahl (Beispiel beim ersten: Abstand 26 zeichen)
CDE 3 2,.. usw.
DEF 1 usw...
Ich hoffe, dass ich es verständlich rüberbringen konnte.
Viele Grüße
David
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt