libsim Versione 7.2.1

◆ csv_record_addfield_char()

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

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 551 del file file_utilities.F90.

552!! csv_record_addfield calls (csv encoding mode). Both \a csv_record
553!! objects \a this and \a record must use the same delimiter and
554!! quoting characters, otherwise the operation will silently fail.
555SUBROUTINE csv_record_addfield_csv_record(this, record)
556TYPE(csv_record),INTENT(INOUT) :: this
557TYPE(csv_record),INTENT(IN) :: record
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

Generated with Doxygen.