хм...интересно, а что вы подразумеваете под поиском литеры (#30)???
если вы хотите чтобы данный пример работал по принципу как из заголовка темы, то и поиск делайте соответствующий...
Код:
var
S : String;
I, J : Integer;
str:tstringlist;
begin
str:=tstringlist.Create;
str.LoadFromFile('1.txt');
For I := 0 To Str.Count-1 Do
Begin
S := Str[i];
For J := 1 To Length(S) Do
If (S[J] ='$' ) and ((S[J+1] ='4' )) and ((S[J+2] ='0' )) And (J > 4) Then // Если поз-я <= 4 то -5 не получится
Begin
S[J-5] := '1';
S[J-4] := '5';
End;
Str[i] := S;
End;
str.SaveToFile('2.txt');
str.Free;
end;