// // WriteRawColumns write raw columns using separator `sep` for each record to // file. // // We use pointer in separator parameter, so we can use empty string as // separator. // func (writer *Writer) WriteRawColumns(cols *tabula.Columns, sep *string) ( nrow int, e error, ) { ncol := len(*cols) if ncol <= 0 { return } if sep == nil { sep = new(string) *sep = DefSeparator } // Find minimum and maximum column length. minlen, maxlen := cols.GetMinMaxLength() esc := []byte(DefEscape) sepbytes := []byte(*sep) x := 0 // First, write until minimum column length. for ; x < minlen; x++ { v := cols.Join(x, sepbytes, esc) v = append(v, DefEOL) _, e = writer.BufWriter.Write(v) if nil != e { return x, e } } // and then write column until max length. for ; x < maxlen; x++ { v := cols.Join(x, sepbytes, esc) v = append(v, DefEOL) _, e = writer.BufWriter.Write(v) if nil != e { break } } _ = writer.Flush() return x, e }