Irgendwie wird hier im Trüben gefischt.
Es gibt nur eine saubere Möglichkeit die Funktion richtig zu machen und das
ist ein
Unit-Test.
Delphi-Quellcode:
procedure Test_Compress(
const s,d:
string);
var
erg :
string;
begin
erg := Compress(s)
if erg <> d
then
raise Exception.CreateFmt('
Compress(%s) liefert <%s>, richtig ist aber <%s>', [s,erg,d]));
end;
procedure Test;
begin
Test_Compress('
R8a=R8b=R8c=R8d=', '
R8abcd');
Test_Compress('
R7a=R7b=R8a', '
R7abR8a');
// und so weiter
// bitte selbsttätig neue Testfälle ausdenken
Nur mit Testfällen kommt man 100% ans Ziel. Alles andere wäre nur ein Herumgedoktere.
Bei
jeder Änderung an der Funktion müssen
alle Testfälle neu durchgespielt werden.
Ansonsten hat man einen Programmcode, der meistens tut, aber in manchen Fällen versagt.