Schau dir doch mal an, was dein Code macht:
Wenn da "text1" steht, nimm die nächste Zeile
Ansonsten gib den Text aus.
Wenn da "text2" steht, nimm die nächste Zeile
Ansonsten gib den Text aus.
Wenn da "text3" steht, nimm die nächste Zeile
Ansonsten gib den Text aus.
Wenn da also text2 steht, wird trotzdem einmal ausgegeben, weil ja die erste Bedingung nicht zutrifft.
Wenn da weder text1, noch text2 oder text3 steht, wird sogar dreimal in die Ausgabedatei geschrieben. Ist dir das gar nicht aufgefallen?
Es ist Quatsch, den Ausgabecode dreimal zu verwenden. Außerdem darfst du erst dann ausgeben, wenn alle Filterabfragen abgearbeitet wurden.