```Contributor: TRYGVE GUDMUNDSEN

{
TH> Apparently this contains the filepositions of the records (and also the
TH> conference numbers?) but the numbers are not in normal format. Can somebody
TH>  please explain the format of this file and how to convert these numbers to
TH> and from something TP can work with?

There is supposed to be at least two doc's explaining the QWK format. I have
here a unit that converts the integer to basicreal (i guess it's what you
need..) I'm sorry I can't remember the of the doc's..

------------------- 8<
}
Unit BasConv;

Interface
Function BasicReal2Long(InValue: LongInt): LongInt;
{Convert Basic Short Reals to LongInts}

Function Long2BasicReal(InValue: LongInt): LongInt;
{Convert LongInts to Basic Short Reals}

Implementation

Function BasicReal2Long(InValue: LongInt): LongInt;

Var
Temp: LongInt;
Expon: Integer;

Begin
Expon := ((InValue shr 24) and \$ff) - 152;
Temp := (InValue and \$007FFFFF) or \$00800000;
If Expon < 0 Then
Temp := Temp shr Abs(Expon)
Else
Temp := Temp shl Expon;
If (InValue and \$00800000) <> 0 Then
BasicReal2Long := -Temp
Else
BasicReal2Long := Temp;
If Expon = 0 Then
BasicReal2Long := 0;
End;

Function Long2BasicReal(InValue: LongInt): LongInt;
Var
Negative: Boolean;
Expon: LongInt;

Begin
If InValue = 0 Then
Long2BasicReal := 0
Else
Begin
If InValue < 0 Then
Begin
Negative := True;
InValue := Abs(InValue);
End
Else
Negative := False;
Expon := 152;
If InValue < \$007FFFFF Then
While ((InValue and \$00800000) = 0) Do
Begin
InValue := InValue shl 1;
Dec(Expon);
End
Else
While ((InValue And \$FF000000) <> 0) Do
Begin
InValue := InValue shr 1;
Inc(Expon);
End;
InValue := InValue And \$007FFFFF;
If Negative Then
InValue := InValue Or \$00800000;
Long2BasicReal := InValue + (Expon shl 24);
End;
End;

End.
                                                   ```