PureBasic

Руководство - Обработка строк

Следующий пример шаг за шагом показывает различные команды строковой библиотеки string - их действие и корректное использование.

Define.s String1, String2, String3

String1 = "The quick brown fox jumps over the lazy dog."

; Left возвращает заданное количество символов от левого края строки.
; Mid возвращает заданное количество символов, начиная от заданного местоположения в строке.
; Right возвращает заданное количество символов от правого края строки.
; Space возвращает конкретное количество строковых пробелов.
; Выведет "The brown dog."
Debug "* Left, Mid and Right"
String2 = Left(String1, 3) + Space(1) + Mid(String1, 11, 5) + Space(1) + Right(String1, 4)
Debug String2

; CountString возвращает найденное количество экземпляров второй строки в первой строке, с учётом  регистра.
; Выведет 1.
Debug "* CountString"
Debug CountString(String1, "the")

; Функции LCase (и UCase) позволяют преобразовывать строки к нижнему (или верхнему) регистру.
; Выведет 2
Debug "* CountString and LCase"
String2 = LCase(String1)
Debug CountString(String2, "the")

; FindString позволяет найти местоположение заданной подстроки в другой строке.
; Выведет 17.
Debug "* FindString"
Debug FindString(String1, "fox")

; RemoveString позволяет удалить заданную подстроку из другой строки.
; Выведет The quick fox jumps over the lazy dog.
Debug "* RemoveString"
String2 = RemoveString(String1, " brown")
Debug String2

; ReplaceString позволяет заменить найденную подстроку в другой строке.
; Shows The quick brown fox jumps over the sleeping dog.
Debug "* ReplaceString"
String2 = ReplaceString(String1, "lazy", "sleeping")
Debug String2

; StringByteLength возвращает длину строки в байтах в указанном формате или если формат не указан, то
; используется формат, в котором создано приложение (исключая завершающийся пустой указатель).
Debug "* StringByteLength"
; Выведет 44.
Debug StringByteLength(String1, #PB_Ascii)
; Выведет 88.
Debug StringByteLength(String1, #PB_Unicode)

; StringField может использоваться, чтобы получить индексируемую подстроку из целевой строки.
; Другими словами позволяет получить, например 5-е слово в строке.
; Что очень помогает, например, при преобразовании строк в списки.
; StringField выделяет слова по пробелам или с другим заданным разделителем.
; Этот пример наглядно покажет действие функции.
; Выведет "jumps".
Debug "* StringField"
String2 = ReplaceString(String1, " ", "\")
Debug String2
String3 = StringField(String2, 5, "\")
Debug String3

; Trim удаляет пробелы (или указанные символы) в начале и конце данной строки.
; Точно так же, LTrim обрезает начало строки, а RTrim конец строки.
Debug "* Trim, LTrim and RTrim"
String2 = Space(10) + String1 + Space(8)
Debug #DQUOTE$ + String2 + #DQUOTE$
String3 = Trim(String2)
Debug #DQUOTE$ + String3 + #DQUOTE$
String3 = LTrim(String2)
Debug #DQUOTE$ + String3 + #DQUOTE$
String3 = RTrim(String2)
Debug #DQUOTE$ + String3 + #DQUOTE$

; LSet устанавливает длину строки от левого конца, при необходимости дополняет пробелами,
; или другим указанным символом.
; Если строка уже превышает заданную длину, то она будет усечена.
Debug "*LSet"
Debug LSet("Abc", 10, "*")
Debug LSet("Abcd", 10, "*")
Debug LSet("Abcde", 10, "*")

;  RSet так же как и LSet дополняет символами строку, только отсчёт ведёт от правого конца.
Debug "* RSet"
Debug RSet("1.23", 10, "0")
Debug RSet("10.23", 10, "0")
Debug RSet("100.23", 10, "0")

; Str преобразовывает quad значение со знаком в строку, так же StrF преобразовывает floats,
; StrD преобразовывает doubles и StrU преобразовывает значения без знака, у  двух последних функции есть
; дополнительные параметры, чтобы задать отображаемое количество десятичных разрядов после запятой.
Debug "* Str, StrF and StrD"
Debug Str(100)
Debug StrF(1.234, 3)
Debug StrD(123456.789, 3)

; Val преобразует string значение в его числовой (quad) эквивалент.
; ValD и ValF выполняют ту же функцию для floats и doubles
Debug "* Val"
Debug Val("123")

; Bin преобразует числовое значение в его двоичный эквивалент.
; Hex преобразует числовое значение в его шестнадцатеричный эквивалент.
Debug "* Bin and Hex"
Debug Bin(19)
Debug Hex(19)

Навигация Руководства

< Циклы - Обзор - Хранение данных в памяти >