[Back to COMM SWAG index] [Back to Main SWAG index] [Original]
{
After begging for help so many times, I thought I'd actually add something to
the echo... feel free to put this in the SWAG if you want to:
{
ParseAddress procedure...
Uses an MKMsg-type address record:
AddrType=Record
Zone,
Net,
Node,
Point:Word;
end;
Probably could be streamlined, but it works :)
}
function strtoint(s:string):word;
{ a more descriptive name would be strtoword, I know... }
var w:word;
c:integer
begin
val(s,w,c);
strtoint:=w;
end;
Procedure ParseAddress (astring : string; var addrout : AddrType);
Var D4 : Boolean;
Begin
D4 := False;
{Test for 4D address}
If Pos ('.', astring) <> 0 Then
D4 := True;
addrout.Zone := strtoint (Copy (astring, 1, Pos (':', astring) - 1) );
astring := Copy (astring, Pos (':', astring) + 1, 78);
addrout.Net := strtoint (Copy (astring, 1, Pos ('/', astring) - 1) );
astring := Copy (astring, Pos ('/', astring) + 1, 78);
If D4 Then
addrout.Node := strtoint (Copy (astring, 1, Pos ('.', astring) - 1) )
Else
Begin
addrout.Node := strtoint (Copy (astring, 1, 78) );
addrout.Point := 0;
Exit;
End;
astring := Copy (astring, Pos ('.', astring) + 1, 78);
addrout.Point := strtoint (astring);
End;
[Back to COMM SWAG index] [Back to Main SWAG index] [Original]