・N←0
・ファイルを開く
・ファイルからデータをBUF読む
■ファイルにデータが存在する間
|     ・i←1
|     ■i<=N and M(i)>BUF
|     |  ・i←i+1
|     ■
|     ・J←N
|     ■J=>i
|     |  ・M(J+1)←M(J)
|     |  ・J←J-1
|     ■
|     ・M(i)←BUF
|     ・ファイルからデータをBUFに読み込む
■
・ファイルを閉じる

こんな感じだけど、何が足りないかな?