Ich habe gerade mal messen lassen. Selbe Funktion mit Pos() statt SearchBuf() ist um 50% schneller. Wie kann das sein? Ich dachte Pointer sind das Ultimative Etwas?
Die Implementation von Pos ist halt intern auch pointer-basiert (und da sieht man, daß die
RTL von Haus aus schon recht performant ist). Allerdings wird durch das AnsiUpperCase ein zusätzlicher Buffer mit den in Großbuchstaben umgewandelten Zeichen angelegt (was bei Binärdaten etwas fragwürdig ist), während SearchBuf direkt auf dem eingelesenen Buffer arbeitet. Solange die Datei klein ist, sollte das aber nicht wirklich relevant sein. Dann kannst du auch die schnellere Variante nehmen. Falls du auf das Uppercase ganz verzichten könntest, wäre das natürlich noch besser.