[Back to TEXTFILE SWAG index] [Back to Main SWAG index] [Original]
program ReadWord;
uses dos,crt;
Const
delimiters = ' ,./?;:"[]{}!';
CrLf = #13#10;
type
tfilename = string;
word_type = string;
wp_type = ^word_type;
var
i : word;
filter : string;
sr : searchrec;
path : pathstr;
dir : dirstr;
fname : namestr;
ext : extstr;
Lines : word;
procedure ShowSyntax;
begin
writeln('USAGE OBJDIC <input fileset> ');
writeln(' ');
writeln(' <input fileset> is a DOS filename (wildcards allowed) ');
writeln(' ');
writeln(' ');
writeln('Example OBJDIC *.TXT ');
halt;
end;
function GetNextWord (buf:string; apos:byte; var aword:word_type; var delim:string) : byte;
var i,j,ch: byte;
begin
i := apos;
while (i <= length(buf)) and (pos(buf[i],delimiters) = 0) do inc (i);
aword := copy(buf,apos, i - apos);
j:= i;
while (i <= length(buf)) and
( ( (upcase(buf[i]) < 'A') or (upcase(buf[i]) > 'Z') ) and
( (buf[i] < '0' ) or (buf[i] > '9' ) ) )
do inc(i);
delim := copy(buf,j,i-j);
if i = length(buf) then i := 0;
GetNextWord :=i;
end;
procedure scanfile(filename : string);
var
infile : text;
inbuf : string;
aword : word_type;
adelim : word_type;
len : byte;
inpos : byte;
index : word;
begin
path := fexpand(filename);
fsplit(path,dir,fname,ext);
assign(infile,path);
reset(infile);
clrscr;
lines:=0;
writeln('Scanning ',filename);
while not eof(infile) do begin
readln(infile,inbuf); inc(lines);
inpos := 1;
while (inpos < length(inbuf)) and (inpos <> 0) do begin
inpos := GetNextWord(inbuf,inpos,aword,adelim);
if length(aword) > 0 then write(aword);
if length(adelim) > 0 then write(adelim);
end;
writeln;
end;
close(infile);
writeln;
end;
begin
filter := Paramstr(1);
FindFirst(Filter,AnyFile,sr);
while DosError = 0 do with sr do begin
scanfile(fexpand(name));
FindNext(sr);
end;
end.
[Back to TEXTFILE SWAG index] [Back to Main SWAG index] [Original]