[Gambas-user] COBOL and how great it was!
BB
adamnt42 at gmail.com
Sat Nov 19 03:45:10 CET 2022
Well, it turned out to be simple!
On 19/11/22 11:47 am, Jussi Lahtinen wrote:
> I see... you can use tabs this way:
> Print Cust.ID & gb.Tab & Cust.Name & gb.Tab & Cust.Balance & gb.Tab &
> Cust.Phone
>
> Many tabs by String(n, gb.Tab). Not very handy though. I think it is
> best to write your own function to show things neatly.
> See here to learn how to take variable amount of parameters:
> http://gambaswiki.org/wiki/comp/gb/param
> <http://gambaswiki.org/wiki/comp/gb/param>
>
> This would be a nice feature... but I can do it only with C.
> Print [0,6,50,70], Cust.ID, Cust.Name, Cust.Balance, Cust.Phone
>
>
> Jussi
>
>
Public Sub Main()
PrintF([0, 6, 30, 45, 60, 132], "ACCT", "NAME", "BALANCE", "PHONE", "DUE")
PrintF([0, 6, 30, 45, 60, 132], String(5, "_"), String(23, "_"), String(45 - 31, "_"), String(60 - 45 - 1, "_"), String(22, "_"))
PrintF([0, 6, 30, 45, 60, 132], 12345, "Doris Day", Format(45.67, "$#.00"), "N/A", Now())
PrintF([0, 6, 30, 45, 60, 132], 145, "Michaelango Vesputti", Format(125.67, "$#.00"), "", Date(Now() - 1))
PrintF([0, 6, 30, 45, 60, 132], 45, "Bozo Dog", Format(5.60, "$#.00"), "Woof", Null)
PrintF([0, 6, 30, 45, 60, 132], 666, "The Devil Incarnate Himself", Format(-66666, "($,#.00"), "0666-666-666", Date(666))
PrintF([0, 6, 30, 45, 60, 132], 427, "Jim Bo", Format(75.5, "$#.00"), "0416-763-274", Date(2023, 5, 1, 12, 30))
End
Private Sub PrintF(fmt As Integer[], ...)
Dim idx As Integer
Dim iPad As Integer ' the number of spaces to add
If Param.Count > (fmt.Count - 1) Then Error.Raise("Mismatched format")
For idx = 0 To Param.Max
If Len(Str(Param[idx])) >= fmt[idx + 1] - fmt[idx] Then
Print Left(Str(Param[idx]), fmt[idx + 1] - fmt[idx] - 1); "…";
Else
iPad = (fmt[idx + 1] - fmt[idx]) - Len(Str(Param[idx]))
If ipad < 0 Then Print "¿";
Print Param[idx];
If idx < Param.Max Then Print String(iPad, " ");
Endif
Next
Print
End
Yields
ACCT NAME BALANCE PHONE DUE
_____ _______________________ ______________ ______________ ______________________
12345 Doris Day $45.67 N/A 19/11/2022 13:04:09
145 Michaelango Vesputti $125.67 18/11/2022 00:00:00
45 Bozo Dog $5.60 Woof
666 The Devil Incarnate Him…($66,666.00) 0666-666-666 28/10/-4800 00:00:00
427 Jim Bo $75.50 0416-763-274 01/05/2023 12:30:00
A bit rudimentary and would be "nicer" if numbers were right or decimal
point aligned and may need a bit more error control.
Amazing what a good sleep and two days free of malformed XML ahead can do.
regards
bruce
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20221119/cea22a01/attachment.htm>
More information about the User
mailing list