Contributor: JASON KING { You're right about that... The only thin why I found it difficult, is because TP (or any other language) doesn't support the MenaNum itself.. Some other thing is that when you're creating a file, you need to use two windows, and constantly convert the numbers... But for the source, thanks, I'll look it over... Is it Ok with you when I place it in the download of my BBS..? I havn't seen any DEC<>MEGA program yet... Try this... } Function MegaToDec(Num: String) : LongInt; {Converts String MEGA to Dec} Const MegaNum : Set of Char = ['0'..'9','A'..'Z']; {assume UC} Var HoldNum, TempVal : LongInt; CharPos : Byte; {Position of Character} Function ToThirtySix(Ex: Byte) : Longint; {Raises to power of 36} Var Times: Byte; HoldPower: LongInt; Begin HoldPower:=0; If Ex=0 then begin ToThirtySix:=1; End; For Times:=1 to Ex do HoldPower:=HoldPower*36; ToThirtySix:=HoldPower; End; Function ConvertVal(Ch: Char) : Byte; Var Temp : Char; Begin Temp:=Ch; Upcase(Temp); If Ord(Ch)>47 and Ord(Ch)<58 then ConvertVal:=Ord(Ch)-48; {Converts if 0..9} If Ord(Ch)>64 and Ord(Ch)<91 then ConvertVal:=Ord(Ch)-55; End; Begin HoldNum:=0; For CharPos:=Length(Num) downto 1 do HoldNum:=HoldNum+ConverVal(Num[CharPos])* ToThirtysix(CharPos-1); MegaToDec:=HoldNum; End; Note: this is untested, but it should work... try values of 10 Mega (should by 36 dec) or 2Z (should be 107 dec I think)... Tell me how it works...