Код:
procedure TForm1.Button3Click(Sender: TObject);
var
I,k: integer;
s: TStringList;
m_: array of m;
countN: integer;
begin
setlength(m_, 1);
N := 0;
s := TStringList.Create;
s.LoadFromFile('spam.txt');
for i:=0 to s.Count-1 do
for k:=1 to Length(s.Strings[i]) do
if(s.Strings[i][k] = '#') then
begin
inc(N);
ListBox1.Items.Add(inttostr(I));
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
var
ns,i: integer;
s: TStringList;
begin
memo1.clear;
s := TStringList.Create;
s.LoadFromFile('spam.txt');
Randomize;
NS:=random(N);
for i:=(strToint(ListBox1.Items.Strings[NS])+1) to (strToint(ListBox1.Items.Strings[NS+1])-1) do
memo1.Lines.Add(s.Strings[i]);
end;
сделал уже так сначало загружаю в лист бокс номера строк где символ # затем по нему ищю