Код
Unit SortSear;
Interface
Uses
CRT, Students, Strings;
Type
TSortSear = object
private
RP: ^TRecords;
public
Constructor Init(var RecordsPointer: ^TRecords);
Destructor Done;
Procedure SearchByName(var RecordsToSearch: TStudents);
end;
Implementation
Constructor TSortSear.Init;
begin
RP := RecordsPointer;
end;
Destructor TSortSear.Done;
begin
end;
Procedure TSortSear.SearchByName;
var
Name: String[20];
i: Byte;
SearchResult: Boolean;
SearchCounter: Byte;
begin
SearchResult := False;
SearchCounter := 0;
TextColor(Black);
For i := 4 To 6 Do
begin
GotoXy(1, i);
ClrEOL;
end;
GotoXy(1, 4);
WriteLn('þ Search by Name/Surname:');
Name := RP^.ReadName(WhereX+1, WhereY+1, 20);
TextColor(Black);
Write('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ');
For i := 1 To RP^.GetSize Do
if Pos(UpperCase(Name), UpperCase(RecordsToSearch[i].Name)) > 0 Then
begin
inc(SearchCounter);
SearchResult := True;
{#} Write(SearchCounter:3, ')'); {#}
{#} Write(RecordsToSearch[i].Name:21); {#}
{#} Write(RecordsToSearch[i].Group:11); {#}
{#} Write(RecordsToSearch[i].AverMark:11:1); {#}
{#} WriteLn(RecordsToSearch[i].Address:25);
end;
if NOT SearchResult Then
begin
TextColor(Red);
WriteLn('þ No results found!');
TextColor(Black);
Write('þ Press any key to continue...');
end;
ReadKey;
end;
End.