libsim Versione 7.1.11

◆ csv_record_addfield_char()

subroutine csv_record_addfield_char ( type(csv_record), intent(inout)  this,
character(len=*), intent(in)  field,
logical, intent(in), optional  force_quote 
)

Add a field from a CHARACTER variable to the csv record this.

The field will be quoted if necessary.

Da fare:
Improve the trailing blank quoting.
Parametri
[in,out]thisobject where to add field
[in]fieldfield to be added
[in]force_quoteif provided and .TRUE. , the field will be quoted even if not necessary

Definizione alla linea 557 del file file_utilities.F90.

558
559IF (this%csep /= record%csep .OR. this%cquote /= record%cquote) RETURN ! error
560CALL checkrealloc(this, record%cursor)
561IF (this%nfield > 0) CALL add_byte(this, this%csep)
562
563this%record(this%cursor+1:this%cursor+record%cursor) = &
564 record%record(1:record%cursor)
565this%cursor = this%cursor + record%cursor
566this%nfield = this%nfield + record%nfield
567
568END SUBROUTINE csv_record_addfield_csv_record
569
570
573FUNCTION csv_record_getrecord(this, nfield)
574TYPE(csv_record),INTENT(IN) :: this
575INTEGER, INTENT(out), OPTIONAL :: nfield
576
577CHARACTER(len=this%cursor) :: csv_record_getrecord
578
579csv_record_getrecord = transfer(this%record(1:this%cursor), csv_record_getrecord)
580IF (present(nfield)) nfield = this%nfield
581
582END FUNCTION csv_record_getrecord
583
584
590SUBROUTINE csv_record_getfield_char(this, field, flen, ier)
591TYPE(csv_record),INTENT(INOUT) :: this
592CHARACTER(len=*),INTENT(OUT),OPTIONAL :: field
594INTEGER,INTENT(OUT),OPTIONAL :: flen
595INTEGER,INTENT(OUT),OPTIONAL :: ier
596
597LOGICAL :: inquote, inpre, inpost, firstquote
598INTEGER :: i, ocursor, ofcursor
599
600! check end of record
601IF (csv_record_end(this)) THEN
602 IF (PRESENT(field)) field = cmiss
603 IF (PRESENT(ier))THEN
604 ier = 2
605 ELSE
606 CALL l4f_log(l4f_error, &
607 'in csv_record_getfield, attempt to read past end of record')
608 CALL raise_error()
609 ENDIF

Generated with Doxygen.