Замените несколько пробелов точкой с запятой в строке в powerscript

#string #replace #sybase #space #powerbuilder

#строка #заменить #sybase #Космос #powerbuilder

Вопрос:

Дана строка типа (2 5). Я хочу заменить несколько пробелов точкой с запятой в строке (2 5) в PowerBuilder

Заранее спасибо

Ответ №1:

Это можно сделать с помощью регулярного выражения. Но поддержка регулярных выражений в Powerscript минимальна, вам нужно использовать внешний COM-объект, VBScript.RegExp чтобы сделать что-то полезное.

 OLEObject re
int li_retcode
string s
string value

re = Create OLEObject
li_retcode = re.ConnectToNewObject("VBScript.RegExp")
re.Pattern = "ss "
re.Global = True

s = "4  2"
value = re.Replace("4   2" , ";")

MessageBox("", value) // 4;2

re.DisconnectObject()
 

Ответ №2:

просто вырежьте каждое слово, обрежьте и соедините в строку.

 string   ls_key = '2  5  8 9'
string ls_new = ''
long ll_pos

do

  ll_pos = Pos( ls_key, ' ')

  if ll_pos > 0 then
    ls_new  = trim( left( ls_key, ll_pos - 1) )   ':'
    ls_key = trim( mid( ls_key, ll_pos   1 ) )
  else
    ls_new  = trim( ls_key )
    ls_key = ''
  end if  

loop while ll_pos > 0

return ls_new