dm_string Module

String utility routines.


Uses

  • module~~dm_string~~UsesGraph module~dm_string dm_string module~dm_error dm_error module~dm_string->module~dm_error module~dm_kind dm_kind module~dm_string->module~dm_kind module~dm_error->module~dm_kind module~dm_ascii dm_ascii module~dm_error->module~dm_ascii iso_fortran_env iso_fortran_env module~dm_kind->iso_fortran_env

Used by

  • module~~dm_string~~UsedByGraph module~dm_string dm_string module~dm_camera dm_camera module~dm_camera->module~dm_string module~dm_cgi dm_cgi module~dm_cgi->module~dm_string module~dm_config dm_config module~dm_config->module~dm_string module~dm_lua dm_lua module~dm_config->module~dm_lua module~dm_crypto dm_crypto module~dm_crypto->module~dm_string module~dm_csv dm_csv module~dm_csv->module~dm_string module~dm_db dm_db module~dm_db->module~dm_string module~dm_env dm_env module~dm_env->module~dm_string module~dm_html dm_html module~dm_html->module~dm_string module~dm_lua->module~dm_string module~dm_modbus_type dm_modbus_type module~dm_modbus_type->module~dm_string module~dm_plot dm_plot module~dm_plot->module~dm_string module~dm_sync dm_sync module~dm_sync->module~dm_string module~dm_tty dm_tty module~dm_tty->module~dm_string module~dmpack dmpack module~dmpack->module~dm_string module~dmpack->module~dm_camera module~dmpack->module~dm_cgi module~dmpack->module~dm_config module~dmpack->module~dm_crypto module~dmpack->module~dm_csv module~dmpack->module~dm_db module~dmpack->module~dm_env module~dmpack->module~dm_html module~dmpack->module~dm_lua module~dmpack->module~dm_modbus_type module~dmpack->module~dm_plot module~dmpack->module~dm_sync module~dmpack->module~dm_tty module~dm_atom dm_atom module~dmpack->module~dm_atom module~dm_cgi_router dm_cgi_router module~dmpack->module~dm_cgi_router module~dm_db_table dm_db_table module~dmpack->module~dm_db_table module~dm_fcgi dm_fcgi module~dmpack->module~dm_fcgi module~dm_geocom dm_geocom module~dmpack->module~dm_geocom module~dm_lua_api dm_lua_api module~dmpack->module~dm_lua_api module~dm_lua_geocom dm_lua_geocom module~dmpack->module~dm_lua_geocom module~dm_modbus dm_modbus module~dmpack->module~dm_modbus module~dm_report dm_report module~dmpack->module~dm_report module~dm_ve dm_ve module~dmpack->module~dm_ve proc~dm_api_status_from_string dm_api_status_from_string proc~dm_api_status_from_string->module~dm_string proc~dm_arg_validate dm_arg_validate proc~dm_arg_validate->module~dm_string proc~dm_beat_is_valid dm_beat_is_valid proc~dm_beat_is_valid->module~dm_string proc~dm_format_from_name dm_format_from_name proc~dm_format_from_name->module~dm_string proc~dm_gm_create dm_gm_create proc~dm_gm_create->module~dm_string proc~dm_im_send_presence dm_im_send_presence proc~dm_im_send_presence->module~dm_string proc~dm_log_is_valid dm_log_is_valid proc~dm_log_is_valid->module~dm_string proc~dm_log_level_from_name dm_log_level_from_name proc~dm_log_level_from_name->module~dm_string proc~dm_log_level_from_string dm_log_level_from_string proc~dm_log_level_from_string->module~dm_string proc~dm_modbus_type_from_name dm_modbus_type_from_name proc~dm_modbus_type_from_name->module~dm_string proc~dm_observ_is_valid dm_observ_is_valid proc~dm_observ_is_valid->module~dm_string proc~dm_regex_request dm_regex_request proc~dm_regex_request->module~dm_string proc~dm_request_is_valid dm_request_is_valid proc~dm_request_is_valid->module~dm_string proc~dm_response_is_valid dm_response_is_valid proc~dm_response_is_valid->module~dm_string proc~dm_sensor_type_from_name dm_sensor_type_from_name proc~dm_sensor_type_from_name->module~dm_string proc~dm_type_from_name dm_type_from_name proc~dm_type_from_name->module~dm_string proc~dm_ve_device_from_name dm_ve_device_from_name proc~dm_ve_device_from_name->module~dm_string proc~dm_ve_frame_next dm_ve_frame_next proc~dm_ve_frame_next->module~dm_string proc~dm_ve_frame_read dm_ve_frame_read proc~dm_ve_frame_read->module~dm_string proc~dm_z_compress_types dm_z_compress_types proc~dm_z_compress_types->module~dm_string proc~dm_z_type_from_name dm_z_type_from_name proc~dm_z_type_from_name->module~dm_string module~dm_atom->module~dm_html module~dm_cgi_router->module~dm_cgi module~dm_db_table->module~dm_db module~dm_fcgi->module~dm_cgi module~dm_geocom->module~dm_tty module~dm_lua_api->module~dm_lua module~dm_lua_geocom->module~dm_lua module~dm_modbus->module~dm_modbus_type module~dm_report->module~dm_plot module~dm_ve->module~dm_tty proc~dm_db_insert_sync dm_db_insert_sync proc~dm_db_insert_sync->module~dm_sync proc~dm_db_insert_sync_log dm_db_insert_sync_log proc~dm_db_insert_sync_log->module~dm_sync proc~dm_db_insert_sync_node dm_db_insert_sync_node proc~dm_db_insert_sync_node->module~dm_sync proc~dm_db_insert_sync_observ dm_db_insert_sync_observ proc~dm_db_insert_sync_observ->module~dm_sync proc~dm_db_insert_sync_sensor dm_db_insert_sync_sensor proc~dm_db_insert_sync_sensor->module~dm_sync proc~dm_db_insert_sync_target dm_db_insert_sync_target proc~dm_db_insert_sync_target->module~dm_sync proc~dm_db_select_sync_log dm_db_select_sync_log proc~dm_db_select_sync_log->module~dm_sync proc~dm_db_select_sync_logs dm_db_select_sync_logs proc~dm_db_select_sync_logs->module~dm_sync proc~dm_db_select_sync_node dm_db_select_sync_node proc~dm_db_select_sync_node->module~dm_sync proc~dm_db_select_sync_nodes dm_db_select_sync_nodes proc~dm_db_select_sync_nodes->module~dm_sync proc~dm_db_select_sync_observ dm_db_select_sync_observ proc~dm_db_select_sync_observ->module~dm_sync proc~dm_db_select_sync_observs dm_db_select_sync_observs proc~dm_db_select_sync_observs->module~dm_sync proc~dm_db_select_sync_sensor dm_db_select_sync_sensor proc~dm_db_select_sync_sensor->module~dm_sync proc~dm_db_select_sync_sensors dm_db_select_sync_sensors proc~dm_db_select_sync_sensors->module~dm_sync proc~dm_db_select_sync_target dm_db_select_sync_target proc~dm_db_select_sync_target->module~dm_sync proc~dm_db_select_sync_targets dm_db_select_sync_targets proc~dm_db_select_sync_targets->module~dm_sync proc~dm_html_cgi_env dm_html_cgi_env proc~dm_html_cgi_env->module~dm_cgi proc~dm_lua_api_register dm_lua_api_register proc~dm_lua_api_register->module~dm_modbus_type proc~dm_modbus_create_rtu dm_modbus_create_rtu proc~dm_modbus_create_rtu->module~dm_tty proc~dm_test_skip dm_test_skip proc~dm_test_skip->module~dm_env proc~luaopen_libdmpack luaopen_libdmpack proc~luaopen_libdmpack->module~dm_lua proc~luaopen_libdmpack->module~dm_lua_api proc~luaopen_libdmpack->module~dm_lua_geocom proc~dm_config_open dm_config_open proc~dm_config_open->module~dm_lua_api proc~dm_config_open->module~dm_lua_geocom

Interfaces

public interface dm_lower

Alias for procedure.

  • public pure elemental subroutine dm_string_lower(string)

    Converts given string to lower case.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(inout) :: string

    Input/output string.

public interface dm_upper

Alias for procedure.

  • public pure elemental subroutine dm_string_upper(string)

    Converts given string to upper case.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(inout) :: string

    Input/output string.

public interface dm_to_lower

Alias for procedure.

  • public pure elemental function dm_string_to_lower(string) result(lower)

    Returns given string in lower case.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: string

    String to convert.

    Return Value character(len=len)

    Result.

public interface dm_to_upper

Alias for procedure.

  • public pure elemental function dm_string_to_upper(string) result(upper)

    Returns given string in upper case.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: string

    String to convert.

    Return Value character(len=len)

    Result.

public interface dm_string_hex_to_int

Converts hexadecimal number to integer.

  • private pure elemental subroutine string_hex_to_int32(string, value, error)

    Returns hexadecimal value as 4-byte integer. The input string must start with 0x or 0X. The routine returns the following error codes in error:

    • E_FORMAT if string is not in expected format.
    • E_INVALID if string does not start with 0x.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: string

    Hex. string of value.

    integer(kind=i4), intent(out) :: value

    Value.

    integer, intent(out), optional :: error

    Error.

  • private pure elemental subroutine string_hex_to_int64(string, value, error)

    Returns hexadecimal value as 8-byte integer. The input string must start with 0x or 0X. The routine returns the following error codes in error:

    • E_FORMAT if string is not in expected format.
    • E_INVALID if string does not start with 0x.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: string

    Hex. string of value.

    integer(kind=i8), intent(out) :: value

    Value.

    integer, intent(out), optional :: error

    Error.

public interface dm_string_from

Generic number to string converter.

  • private pure subroutine string_from_int32(value, string, error)

    Returns string representation of given 4-byte integer.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=i4), intent(in) :: value

    Input.

    character(len=:), intent(out), allocatable :: string

    Output.

    integer, intent(out), optional :: error

    Error code.

  • private pure subroutine string_from_int64(value, string, error)

    Returns string representation of given 8-byte integer.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=i8), intent(in) :: value

    Input.

    character(len=:), intent(out), allocatable :: string

    Output.

    integer, intent(out), optional :: error

    Error code.

  • private pure subroutine string_from_real32(value, string, error)

    Returns string representation of given 4-byte real.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=r4), intent(in) :: value

    Input.

    character(len=:), intent(out), allocatable :: string

    Output.

    integer, intent(out), optional :: error

    Error code.

  • private pure subroutine string_from_real64(value, string, error)

    Returns string representation of given 8-byte real.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=r8), intent(in) :: value

    Input.

    character(len=:), intent(out), allocatable :: string

    Output.

    integer, intent(out), optional :: error

    Error code.

public interface dm_string_to

Generic string to number converter.

  • private pure elemental subroutine string_to_int16(string, value, error)

    Converts string to 2-byte integer.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: string

    Input.

    integer(kind=i2), intent(out) :: value

    Output.

    integer, intent(out), optional :: error

    Error code.

  • private pure elemental subroutine string_to_int32(string, value, error)

    Converts string to 4-byte integer.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: string

    Input.

    integer(kind=i4), intent(out) :: value

    Output.

    integer, intent(out), optional :: error

    Error code.

  • private pure elemental subroutine string_to_int64(string, value, error)

    Converts string to 8-byte integer.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: string

    Input.

    integer(kind=i8), intent(out) :: value

    Output.

    integer, intent(out), optional :: error

    Error code.

  • private pure elemental subroutine string_to_real32(string, value, error)

    Converts string to 4-byte real.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: string

    Input.

    real(kind=r4), intent(out) :: value

    Output.

    integer, intent(out), optional :: error

    Error code.

  • private pure elemental subroutine string_to_real64(string, value, error)

    Converts string to 8-byte real.

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: string

    Input.

    real(kind=r8), intent(out) :: value

    Output.

    integer, intent(out), optional :: error

    Error code.


Derived Types

type, public ::  string_type

Derived type of allocatable character to be stored in an array.

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: data

String data.


Functions

public pure elemental function dm_string_count_char(string, a, n) result(count)

Counts occurences of character a in string.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: string

Input.

character(len=1), intent(in) :: a

Character to count.

integer, intent(in), optional :: n

String length.

Return Value integer

public function dm_string_count_lines(string) result(count)

Returns the number of line breaks in string.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(inout) :: string

Input string.

Return Value integer

public pure elemental function dm_string_count_substring(string1, string2) result(count)

Returns the number of occurences of string2 in string1.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: string1

Haystack string.

character(len=*), intent(in) :: string2

Needle string.

Return Value integer

public function dm_string_is_empty(string) result(is)

Returns .true. if given allocatable string is not passed, not allocated, or contains only white spaces.

Arguments

Type IntentOptional Attributes Name
character(len=:), intent(inout), optional, allocatable :: string

Input string.

Return Value logical

public pure function dm_string_is_present(string) result(is)

Returns .true. if given string is present and not empty.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in), optional :: string

Input string.

Return Value logical

public pure function dm_string_is_printable(string) result(is)

Returns .true. if all characters is given string are printable ASCII characters.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: string

String to validate.

Return Value logical

public pure elemental function dm_string_to_lower(string) result(lower)

Returns given string in lower case.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: string

String to convert.

Return Value character(len=len)

Result.

public pure elemental function dm_string_to_upper(string) result(upper)

Returns given string in upper case.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: string

String to convert.

Return Value character(len=len)

Result.

public pure elemental function dm_string_starts_with(string1, string2) result(starts)

Returns .true. if string1 starts with string2.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: string1

First string.

character(len=*), intent(in) :: string2

Second string.

Return Value logical


Subroutines

public pure elemental subroutine dm_string_type_allocate(string, n)

Allocates string type to empty character of length 0 or n, if not allocated already.

Arguments

Type IntentOptional Attributes Name
type(string_type), intent(inout) :: string

String type.

integer, intent(in), optional :: n

Length of string data.

public pure elemental subroutine dm_string_type_destroy(string)

Deallocates allocatable character inside of string type.

Arguments

Type IntentOptional Attributes Name
type(string_type), intent(inout) :: string

String type.

public pure elemental subroutine dm_string_lower(string)

Converts given string to lower case.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(inout) :: string

Input/output string.

public subroutine dm_string_replace(string, a, b)

Replaces character a in string with b.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(inout) :: string

String to parse.

character(len=1), intent(in) :: a

Character to replace.

character(len=1), intent(in) :: b

Substitute character.

public pure subroutine dm_string_split(string, array, del, n)

Splits a string by a given delimiter into an array of strings.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: string

String to split.

character(len=*), intent(inout) :: array(:)

Splitted components.

character(len=*), intent(in) :: del

Delimiter.

integer, intent(out), optional :: n

Number of array elements.

public pure elemental subroutine dm_string_upper(string)

Converts given string to upper case.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(inout) :: string

Input/output string.