#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