>> Octal is normally not needed with Gambas. Do you have any use of that? <<
Neither is "binary" best I can tell. It is still convenient to have these tools available. One may not always be dealing with numbers originating in Gambas or output targeting Gambas. Hex$(), Dec$(), Oct$(), Bin$() Some might consider the Dec$() function redundant but if the functions were written such that they would except any common string notation or value the Dec$() could be used to convert from Hexadecimal or Binary Strings as well as a integer or long value. The most challenging aspect might be determining all the various common notations used. I tried something similar recently for Hexadecimal: ' -------------------------------------- Private Function HexStrToVal(HexStr As String) As Long Dim i, v As Long Dim HexCharacters As String = "0123456789abcdef" Dim N As Long Dim C As String ' first we remove any white space and convert it to lower case HexStr = Trim(LCase(HexStr)) ' There are a number of other conventions. These are just a few.... If Left(HexStr, 4) = "hex:" Then HexStr = Mid(HexStr, 5) If Left(HexStr, 3) = "hex" Then HexStr = Mid(HexStr, 4) If Left(HexStr, 3) = "&#x" Then HexStr = Mid(HexStr, 4) If Left(HexStr, 2) = "%x" Then HexStr = Mid(HexStr, 3) If Left(HexStr, 2) = "0x" Then HexStr = Mid(HexStr, 3) If Left(HexStr, 2) = "0h" Then HexStr = Mid(HexStr, 3) If Left(HexStr, 2) = "&h" Then HexStr = Mid(HexStr, 3) If Left(HexStr, 2) = "U+" Then HexStr = Mid(HexStr, 3) If Left(HexStr, 1) = "x" Then HexStr = Mid(HexStr, 2) If Left(HexStr, 1) = "h" Then HexStr = Mid(HexStr, 2) If Left(HexStr, 1) = "$" Then HexStr = Mid(HexStr, 2) If Left(HexStr, 1) = "#" Then HexStr = Mid(HexStr, 2) If Left(HexStr, 1) = ":" Then HexStr = Mid(HexStr, 2) ' now just in case we have a space between the prefix and the hex number ' then we add a space to the end so that mid always has something to return HexStr = Trim(HexStr) & " " N = 0 While HexStr <> "" C = Left(HexStr, 1) v = InStr(HexCharacters, C) If v = 0 Then ' like the val function we stop at the first non-hex character HexStr = "" Else v = v - 1 N = (N * 16) + v HexStr = Mid(HexStr, 2) Endif Wend Return N End ' -------------------------------------- Someone can probably come up with a more efficient way to calculate the value. Regards, Lewis Balentine On 12/01/2014 01:35 PM, Benoît Minisini wrote: > Le 01/12/2014 19:11, T Lee Davidson a écrit : >> On 12/01/2014 08:48 AM, Benoît Minisini wrote: >>> Hi, >>> >>> I'd like to create a 'gb.util' component, written in Gambas, to collect >>> useful non-GUI programming routines that can't go directly into the >>> interpreter because it would make it too heavy. >>> >>> [snip] >>> >>> The difficulty will be to find the best interface (class name, method >>> name, where to put it) for that. >>> >>> For example, for the removing accents method, I extended the String >>> class. Logical... For directory methods, I created a new Shell static >>> class... >>> >>> [snip] >> I'm not sure if you are asking for thoughts on miscellaneous functions >> to put in a gb.Util component or thoughts on useful extensions to >> existing classes, or both. But... >> >> A. Format decimal numbers as octal: >> Public Sub Format(iDecimal as Integer) as String >> Dim digit as Byte >> Dim out as String >> While (iDecimal > 0) >> digit = iDecimal % 8 >> iDecimal /= 8 >> out = digit & out >> Wend >> Return out >> End > Maybe an Oct$() function inside the interpreter. Octal is normally not > needed with Gambas. Do you have any use of that? > >> B. It would be nice to be able to work with *nix-native timestamps. >> Perhaps this might be relatively easily accomplished by just a couple >> functions: >> 1. DateToTimestamp(dDate as Date) as Integer >> 2. TimestampToDate(iTimestamp as Integer) as Date >> Format$ should be able to take over from there. >> > Noted! > ------------------------------------------------------------------------------ Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration & more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user