воскресенье, 15 сентября 2013 г.

Star E процесс создания

Выложу ка я исходники, лицензия 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

Комментариев нет:

Отправить комментарий