[Back to FINDREPL SWAG index]  [Back to Main SWAG index]  [Original]

ÚÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ        Andy Stewart        ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ·
³o³ Can someone tell/show me how to write a procedure that   ³oº
³o³ will take a string input and search for it in a textfile ³oº
ÔÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏͼ
{ Simple example for a straight forward search routine }
var
  f    : text;
  buf  : array[0..maxint] of char;
  line : word;
  pattern,s,t : string;

{ Corrected version of routine from turbo techniques }
function uppercase (strg:string):string; assembler;
ASM
   push     ds
   lds      si,strg
   les      di,@result
   cld
   lodsb
   stosb
   xor      ch,ch
   mov      cl,al
   jcxz     @done
 @more:
   lodsb
   cmp      al,'a'
   jb       @no
   cmp      al,'z'
   ja       @no
   sub      al,20h
 @no:
   stosb
   loop     @more
 @done:
   pop      ds
END;

{ If you want the above routine in pascal
function uppercase (strg : string) : string;
  var i : integer;
  begin
    for i := 1 to length(strg) do strg[i] := upcase(strg[i]);
    uppercase := strg;
  end;
}

procedure search4pattern;
  begin
    readln(f,s);
    inc(line);
    t := uppercase(s);
    if pos(pattern,t) > 0
    then writeln(line:5,' ',s);
  end;

begin
  Line := 0;
  if paramcount < 2 then exit;
  pattern := paramstr(2);
  pattern := uppercase(pattern);
  assign(f,paramstr(1));
  settextbuf(f,buf);
  {$I-} reset(f); {$I+}
  if ioresult = 0
  then begin
         while not eof(f) do search4pattern;
         close(f);
       end
  else writeln('File not found');
end.
---
 þ Tags ç Us þ Abandon the search for truth: settle on a good fantasy.
 * Suburban Software - Home of King of the Board(tm) - 708-636-6694
 * PostLink(tm) v1.05  SUBSOFT (#715) : RelayNet(tm) Hub

                                                                            

[Back to FINDREPL SWAG index]  [Back to Main SWAG index]  [Original]