Выложу ка я исходники, лицензия GPL v.3
' Gambas class file
' Класс содержит функции нужные для разделения строк на параметр=значение
' По сути он дублирует модуль ModuleStringData
' А сделанно всё так из за герметичности классов, они не допускают использование и вызов функций из обычных модулей
' инкапсуляция же. FUCK!FUCK!FUCK!FUCK!FUCK!FUCK!FUCK!FUCK!
Public Function GetOpS(S As String) As String
'процедура возвращает оператор
'процедура настроена на символ = в качестве разделителя
Dim l As Integer ' длинна строки
Dim a As Integer ' счётчик цикла
Dim Op As String ' оператор
l = Len(S)
If l > 0 Then
'строка не пустая
For a = 1 To l
'цикл же
If Mid(S, a, 1) = "=" Then Break ' досрочный выход из цикла по причине нахождения разделителя
Op = Op & Mid(S, a, 1) ' наращивание по одному символу
Next
Endif
Return Op 'возврат значения
End
Public Function GetValueS(S As String) As String
'процедура возвращает значение находящиеся после оператора, если оно конечно есть
'в любом другом случае возвращает пустое значение
Dim l As Integer ' длинна строки
Dim a As Integer ' счётчик цикла
Dim Value As String ' значение
Dim v As Boolean ' началось ли значение
l = Len(s)
If l > 2 Then
'тут есть значение, хотя оператора может и не быть :) минимум для оператора и значения это 3
'это не баг, это фича
For a = 1 To l
If v Then
'значение началось
Value = Value & Mid(s, a, 1) ' заполняем значение
End If
If v = False Then
'значение ещё не началось
If Mid(S, a, 1) = "=" Then v = True ' значение начинаеться
End If
'именно такой порядок проверки условий нужен что бы в значение не попал разделитель "="
Next
Endif
Return Value 'возврат значения
End
Комментариев нет:
Отправить комментарий