Mails и Pass - это TMemo, правильно? Как-то так:
Код
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
OpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName);
if OpenDialog1.Execute then
if FileExists(OpenDialog1.FileName) then //Проверяем существование файла
begin
Mails.Lines.Clear; //Именно lines.clear, а не просто clear
Pass.Lines.Clear;
AssignFile(input,OpenDialog1.FileName);
Reset(input);
while not eof(input) do //До конца файла
begin
readln(input,s);
//Вот это я у karuy скопировал.
//Тут всё просто - Pos(строка №1, строка №2) ищет строку №1 (символ) в строке №2
//и возвращает позицию первого её вхождения,
//а Copy(строка, первый символ, последний символ) возвращает подстроку указанной длины из заданной строки.
Mails.Lines.Add(Copy(s, 1, Pos(';', s) - 1));
Pass.Lines.Add(Copy(s, Pos(';', s) + 1, Length(s)));
end;
Label2.Caption:=inttostr(Mails.Lines.Count);
end else MessageDlg('Файл не существует!',mtError,[mbOk],0);
end;