home *** CD-ROM | disk | FTP | other *** search
- program parse_domain(input, output);
- uses Crt, argx;
- type
- text_line = string[81];
-
- var
- domain: TEXT;
- in_line, last_line: text_line;
- search_string: string[40];
- response: char;
- line_no, args, hits : integer;
- first_time: boolean;
-
-
- function upper(instring: string): string;
-
- var
- i0 : integer;
-
- begin
- upper[0] := chr(length(instring));
- for i0 := 1 to length(instring) do
- if (ord(instring[i0]) > 96)
- and (ord(instring[i0]) < 122) then
- upper[i0] := chr(ord(instring[i0]) - 32)
- else
- upper[i0] := instring[i0]
- end;
-
- procedure print_it(out_line: string);
-
- var
- i0: integer;
-
- begin
- if line_no = 20 then begin
- line_no := 0;
- writeln; writeln('Press ENTER to continue...');
- readln;
- ClrScr;
- end;
-
- for i0 := 1 to length(out_line) do
- if ord(out_line[i0]) < 32 then
- out_line[i0] := chr(32);
- writeln(out_line);
- line_no := line_no + 1
- end;
-
- function hit: boolean;
-
- var
- temp: boolean;
- check_str: string[40];
- last_search, i0 : integer;
-
- begin
- temp := false;
- last_search := length(in_line) - length(search_string) + 1;
- if last_search > 0 then begin
- i0 := 1;
- while (not temp) and (i0 <= last_search) do begin
- check_str := copy(in_line,i0,length(search_string));
- if upper(check_str) = upper(search_string) then
- temp := true
- else
- i0 := i0 + 1
- end
- end;
- hit := temp
- end;
-
- begin
- assign(domain,'\domain.txt');
- response := 'y';
- first_time := true;
- while response in ['Y','y'] do begin
- ClrScr;
- line_no := 0;
- hits := 0;
- args := arg_count;
- if (args > 0) and
- first_time then begin
- search_string := arg_string(1);
- first_time := false;
- writeln('Searching for "', search_string, '"...')
- end
- else begin
- write('Enter search string: ');
- readln(search_string)
- end;
- reset(domain);
- readln(domain, in_line);
- last_line := '';
- while not eof(domain) do
- if hit then begin
- hits := hits + 1;
- if in_line[1] <> '#' then
- print_it(last_line);
- repeat
- print_it(in_line);
- last_line := in_line;
- readln(domain,in_line)
- until in_line[1] = '#'
- end
- else begin
- last_line := in_line;
- readln(domain, in_line);
- end;
- writeln;
- if hits < 1 then
- writeln('No matching records!')
- else
- writeln(hits,' matches listed.');
- writeln('Press ENTER to continue...');
- readln;
- if args > 0 then
- response := 'n'
- else begin
- write('Another query? [y|n]: ');
- readln(response)
- end
- end;
- close(domain)
-
- end.
-
-
-
-
-
-