Поиск по маске, а дальше все зависит от того, что ты понимаешь под первой строчкой.
Код:
procedure TForm1.Delete1stLine(APath : String); // APath - стартовый путь
var
iFound : Integer;
F : TSearhcRec;
List : TStringList;
begin
APAth := IncludeTrailingPathDelimiter(APath); // на всякий случай
iFound := FindFirst(IncludeTrailingPathDelimiter(APath) + '*.*',faAnyFile,F);
While iFound = 0 Do
Begin
If (F.Attr And faDirectory) <> 0
Then
Begin
// Папка
If (F.Name <> '.') And (F.Name <> '..')
Then Delete1stLine(APath + F.Name); // Если по подпапка ненадо, то не вызывать
End
Else
Begin
// Файл
If MatchesMask(F.Name,'*.txt') Then // здесь указать маску файла
Begin
List := TStringList.Create;
List.LoadFromFile(APath + F.Name);
List.Delete(0);
List.SaveTofile(APath + F.Name);
List.Free;
End;
Endl
End;
end;
Удаляет первую физическую строку из файлов *.txt с проходом по подкаталогам.