' result = FormatLine(in_str/array, fmt_str, quo_char, num_spc) Note: num_spc = -1 uses TAB
IMPORT sqlite.bas
FUNCTION FormatLine(ln,fmtstr,qc,nsp)
IF ISARRAY(ln) THEN
col = ln
ELSE
SPLITAQ ln BY "," QUOTE qc TO col
END IF
SPLITA fmtstr BY "|" TO fmtcmd
rs = ""
FOR x = 0 to UBOUND(col)
SPLITA fmtcmd[x] BY ":" TO fmt
IF fmt[0] = "L" THEN
tmp = LEFT(col[x] & STRING(fmt[1]," "),fmt[1])
GOSUB Margin
ELSE IF fmt[0] = "R" THEN
IF fmt[2] <> undef THEN
tmp = FORMAT(fmt[2],col[x])
ELSE
tmp = col[x]
END IF
tmp = RIGHT(STRING(fmt[1]," ") & tmp, fmt[1])
GOSUB Margin
ELSE IF fmt[0] = "C" THEN
pad = fmt[1] - LEN(col[x])
pboth = pad \ 2
prt = pad % 2
tmp = STRING(pboth," ") & col[x] & STRING(pboth," ") & STRING(prt," ")
GOSUB Margin
END IF
NEXT
GOTO Done
Margin:
IF nsp = -1 THEN
tmp &= "\t"
ELSE
tmp &= STRING(nsp," ")
END IF
rs &= tmp
RETURN
Done:
FormatLine = rs
END FUNCTION
db = sqlite::open("sac16.db")
stmt = sqlite::query(db,"SELECT * FROM crime LIMIT 1")
sqlite::row(stmt)
sqlite::FetchArray(stmt,columns)
fmtstr = "L:15|L:30|R:4|L:4|R:6|L:35|L:6|R:10:%~-##0.0000~|R:10:%~-##0.0000~"
PRINT FormatLine(columns,fmtstr,"",2),"\n"
sqlite::close(db)