IBM FileNet P8, Version 5.2.1            

Funkcije za delo z nizi

Ta razdelek vsebuje krajše opise funkcij, ki se nanašajo na nizovne vrednosti.

Tabela 1. Tabela funkcij in njihovih namenov
Funkcija Kaj naredi
convert Niz pretvori v drug podatkovni tip ali drug podatkovni tip pretvori v niz.
decode Zakodiran nizovni izraz pretvori nazaj v izviren niz.
encode Nizovni izraz pretvori v besedilni niz brez pomena.
hex Nizovni literal, ki vsebuje šestnajstiške kode, prevede v niz ASCII.
in_set Vrne logično vrednost true, če je niz v celoti sestavljen iz znakov drugega niza.
is_number Vrne logično vrednost true, če je izraz niza vrednoten kot decimalna ali celoštevilska vrednost.
is_time Vrne logično vrednost true, če je izraz niza vrednoten kot veljavna časovna vrednost.
len Vrne dolžino niza.

lower

upper

Vse znake v nizu spremeni v male (lower) ali velike (upper).

ltrim

rtrim

trim

Izbriše prazne ali podane znake pred (ltrim), za (rtrim) ali pred in za nizom (trim).
max Vrne največjo vrednost iz seznama izrazov kateregakoli od podprtih podatkovnih tipov.
min Vrne najmanjšo vrednost iz seznama izrazov kateregakoli od podprtih podatkovnih tipov.
numbertostring S pomočjo podane maske izraz realnega števila s plavajočo vejico ali celoštevilčni izraz pretvori v nizovni izraz.
repeat Izdela niz tako, da drug niz ponovi tolikokrat, kot je podano.
strins En niz vstavi v drug niz na podani lokaciji.
strloc Vrne začetni položaj podniza znotraj niza. Če podniz ni najden, funkcija vrne ničlo.
stringtotime S pomočjo podane maske nizovni izraz pretvori v časovni izraz.
substitute Znotraj niza en podniz zamenja z drugim.
substr Vrne podniz med podanim začetnim položajem in dolžino.
timetostring S pomočjo podane maske časovni izraz pretvori v nizovni izraz.
translate Zamenja znake v nizu.
xmlencode Polje XML pretvori v nizovni izraz.
xmldecode Nizovni izraz pretvori v XML.

hex

Funkcija prevede nizovni literal šestnajstiške kode v niz ASCII. Funkcija hex lahko izrazi katerikoli znak, vendar jo običajno uporabljate za znake, ki nimajo enakovrednega znaka ASCII, kot je tabulator.

Vsaki dve šestnajstiški števki predstavljata en znak v nastalem nizu. Liho število šestnajstiških znakov v nizovnem literalu vrne napako. Uporabite naslednjo skladnjo:
hex (hex_codes)
kjer je hex_codes nizovni literal, ki vsebuje šestnajstiško kodo za znak ali niz znakov.
Naslednji primer vrne niz abc, ker so 61, 62 in 63 šestnajstiške kode za te znake.
hex ("616263")

translate

Funkcija izdela nov niz tako, da znake v enem nizu zamenja z znaki, ki jih podate. Funkcija translate je uporabna za kodiranje znakov.

Uporabite naslednjo skladnjo:
translate (source_string, search_string,
replace_string)
kjer je:
Tabela 2. Parametri in opis za funkcijo translate
Parameter Opis
source_string Niz, ki vsebuje znake, ki bodo zamenjani.
search_string Niz znakov znotraj source_string, ki bodo zamenjani. Dolg mora biti enako kot replace_string.
replace_string Niz znakov za zamenjavo. Dolg mora biti enako kot search_string.

Iskanje in zamenjava se zgodi po en znak naenkrat. Če je iskani niz (search_string) "abc", zamenjalni niz (replace_string) pa je "def", funkcija v novo izdelanem nizu "a" prevede v "d", "b" v "e" in "c" v "f".

Na primer, z naslednjimi vrednostmi
source_string vsebuje "*123-#44-!999"
search_string vsebuje "#*!-"
replace_string vsebuje "XYZ&"
je rezultat funkcije naslednji novi niz:
Y123&X44&Z999

Pomnite, da se vsebina izvornega niza, iskalnega niza in zamenjalnega niza ne spremenijo.

Nasvet: Če želite iskati in zamenjati celoten podniz in ne posamezne znake, uporabite funkcijo substitute.
V naslednjem primeru je funkcija translate uporabljena za pretvarjanje niza iz evropske oblike zapisa števil v ameriško obliko zapisa števil.
translate (str, ".,", ",.")

lower, upper

Ti funkciji vse znake v nizu pretvorita ali v male (lower) ali v velike (upper) črke. Uporabite naslednjo skladnjo:
lower (string_exp)

upper (string_exp)
kjer je string_exp nizovni izraz, ki bo pretvorjen.

in_set

Ta funkcija primerja dva niza ter vrne logično vrednost true, če je vsak znak v prvem nizu tudi nekje v drugem nizu. Če prvi niz vsebuje vsaj en znak, ki ni tudi v drugem nizu, funkcija vrne vrednost false. Znaki se v obeh nizih ne rabijo pojaviti v istem vrstnem redu. Drug niz pa lahko vsebuje tudi dodatne znake.

Uporabite naslednjo skladnjo:
in_set (subset_string, superset_string)
kjer je:
Tabela 3. Parametri in opis za funkcijo in_set
Parameter Opis
subset_string Nizovni izraz, ki vsebuje samo znake podnabora.
superset_string Nizovni izraz, s katerim se primerja subset_string.
V naslednjem primeru
in_set (name, "abcdefghijklmnopqrstuvwxyz")
vrne funkcija vrednost true, če je
name = "jim"
in false, če je
name = "Fido"
ali
name = "a.b"

len

Funkcija izračuna dejansko (ne pa deklarirano) dolžino nizovnega izraza. Vrne skupno število znakov v izrazu, vključujoč presledke. Uporabite naslednjo skladnjo:
len (string_expr)
kjer je string_expr nizovni izraz, katerega dolžino se naj izračuna.
V naslednjem primeru je vrnjena dolžina 15. Pomnite, da narekovaji pred in za nizom niso šteti kot znaki.
len ("Hamilton Burger")

repeat

Funkcija niz izdela tako, da podan niz ponovi tolikokrat, kot je podano. Uporabite naslednjo skladnjo:
repeat (string_expr, repeat_num)
kjer je:
Tabela 4. Parametri in opis za funkcijo repeat
Parameter Opis
string_expr Nizovni izraz, ki naj bo ponovljen.
repeat_num Kolikokrat naj bo string_exp ponovljen.
Rezultat naslednjega izraza je niz abcdabcdabcdabcdabcd.
repeat ("abcd", 5)

strloc

Podniz je del izvornega niza. Lahko je krajši ali enako dolg kot izvorni niz. dobro, jutr, ro jutr in dobro jutr so vse podnizi dobro jutro.

S pomočjo funkcije strloc poiščite, kje v izvornem nizu se nahaja določen podniz. Funkcija vrne položaj začetnega znaka podniza v izvornem nizu.

Če je podniz v izvornem nizu mogoče najti več kot enkrat, funkcija vrne začetno pozicijo prve pojavitve. Če podniz ni najden ali če je podniz daljši od izvornega niza, funkcija vrne ničlo.

Uporabite naslednjo skladnjo:
strloc (source_string, sub_string)
kjer je:
Tabela 5. Parametri in opis za funkcijo strloc
Parameter Opis
source_string Niz, v katerem se naj išče podniz.
sub_string Niz, ki ga iščemo.
Ta primer vrne vrednost 6, ker se podniz začne v položaju 6 v izvornem nizu.
strloc ("Good Morning", "Morning")

substr

Funkcija podniz izvleče iz izvornega niza in tako izdela nov niz. Podate lahko izvorni niz in položaj znaka, kjer se začne ekstrahiranje. Poleg tega lahko po želji podate število znakov, ki naj bodo izvlečeni. Če pa te informacije ne podate, se ekstrahiranje konča na koncu izvornega niza.

Uporabite naslednjo skladnjo:
substr (source_string, start_pos {, length})
kjer je:
Tabela 6. Parametri in opis za funkcijo substr
Parameter Opis
source_string Izvorni niz.
start_pos Položaj znaka, kjer se začne ekstrahiranje.
length Število znakov, ki naj bodo izvlečeni (na primer dolžina izvlečenega niza).
Naslednji primer vrne niz jutro. Pomnite, da se narekovaji pred in za nizom ne štejejo kot del niza.
substr
("dobro jutro!", 6, 7)

Funkcija lahko tudi ekstrahira nize z ničelno dolžino (nizi brez znakov med narekovaji) na položaju, ki je za ena daljši od dolžine niza. Ta uporaba je v pomoč pri algoritmih, ki za zaznavanje konca uporabljajo nize, ki so nične dolžine. Izvlečete lahko znake od položaja 1 do zadnjega znaka niza +1. Tako sta robna pogoja pozicija 1 in dolžina niza +1.

Do napake v času izvajanja pride v naslednjem primeru:

  • Če je vaš začeten položaj manj kot 1 ali večji od dolžine niza + 1.
  • Rezultat podane dolžine bi bil podniz, ki je daljši od preostalih znakov v izvornem nizu (tj. start_pos (začetna pozicija) + dolžina> len (source_string) (dolžina izvornega niza) + 1).

strins

Funkcija en niz vstavi v drug niz ter tako izdela nov niz. Vrednosti izvornega niza in vstavljenega niza se ne spremenita. Uporabite naslednjo skladnjo:
strins (source_string, insert_string, start_pos)
kjer je:
Tabela 7. Parametri in opis za funkcijo strins
Parameter Opis
source_string Niz, ki bo z insert_string združen za izdelavo novega niza.
insert_string Niz, ki bo s source_string združen za izdelavo novega niza.
start_pos

Položaj v source_string, kjer se začne vnašanje. Vrednost je lahko katerakoli med 1 in dolžino niza source_string + 1.

Do napake v času izvajanja pride, če podate vrednost, manjšo od 1 ali večjo od dolžine niza source_string + 1.

V spodnjem primeru denimo, da je
insert_str = "gospod Jones,"
in da je
source_str = "Dobro jutro,
kako lep dan."
strins (source_str, insert_str, 15)
Funkcija z zgoraj navedenima vrednostma vrne naslednji niz:
Dobro jutro, gospod Jones, kako lep dan.

substitute

Funkcija izdela nov niz z zamenjavo enega podniza z drugim znotraj podanega izvornega niza. Uporabite naslednjo skladnjo:
substitute (source_string, unwanted_string,
replacement_string)
kjer je:
Tabela 8. Parametri in opis za funkcijo substitute
Parameter Opis
source_string Niz, ki vsebuje niz unwanted_string.
unwanted_string Podniz niza source_string.
replacement_string Niz, ki bo zamenjal niz unwanted_string pri izdelavi novega niza.
V naslednjem primeru je vsaka pojavitev abc v nizu TestString niza zamenjana z wxyz. Zamenjava poteka od leve proti desni.
substitute (TestString, "abc", "wxyz")
Če je
TestString = "abcdabcd"
vrne funkcija naslednji novi niz:
wxyzdwxyzd
Pomnite, da se vsebina izvornega niza, neželenega niza in zamenjalnega niza ne spremenijo.
Nasvet: Če želite iskati in zamenjati posamezne znake in ne podniz, uporabite funkcijo translate.

ltrim, rtrim in trim

Te funkcije izdelajo nov niz tako, da prekopira obstoječi niz in izbriše prazne ali podane znake pred (ltrim), za (rtrim) ali pred in za novim nizom (trim). V vseh primerih izvorni niz ostane nespremenjen.

Naslednjo skladnjo uporabite za vse tri funkcije:
ltrim (string_expr{, trim_char}neobvezen)

rtrim (string_expr{, trim_char}neobvezen)

trim (string_expr{, trim_char}neobvezen)
kjer je:
Tabela 9. Parametri in opis za funkcije trim, ltrim in rtrim
Parameter Opis
string_expr Izvorni nizovni izraz, ki bo kopiran.
trim_char

Neobvezen parameter, ki podaja znake, ki naj bodo izbrisani iz novega niza. Če tega parametra ne podate, so izbrisani presledki.

Od funkcije, ki ste jo izbrali, je odvisno, ali se brisanje začne na začetku, koncu ali na obeh straneh, dokler ni mogoče najti nobenega znaka, ki je podan v trim_char (ali presledka), več.

Naslednji primer izbriše vse presledke pred spremenljivko LastName. V primeru je
LastName = "Smith"
in vrnjeni novi niz je
"Smith"
ltrim (LastName)
Spodnji primer izbriše znak & na koncu niza, imenovanega Status. Če je
Status = "OpenXY&Z&&&&"
je vrnjeni niz
"OpenXY&Z"
rtrim (Status, "&")
Naslednji primer izbriše vse številke na koncu spremenljivke AccountName.
rtrim (AccountName, "0123456789")

is_number

Funkcija določa, ali se podan nizovni izraz ovrednoti na vrednost realnega števila s plavajočo vejico ali celoštevilčno vrednost. Funkcija is_number vrne logično vrednost true, če se celoten niz (ne le podniz) ovrednoti na vrednost decimalnega števila ali celoštevilsko vrednost, v nasprotnem primeru pa false.

Uporabite naslednjo skladnjo:
is_number (expr)
kjer je expr nizovni izraz.
Naslednji trije primeri vrnejo true, false in false.
is_number ("123.4")

is_number ("no")

is_number ("abc63j")

is_time

Funkcija določa, ali se podan nizovni izraz ovrednoti na vrednost časa v podanem formatu. Funkcija is_time vrne logično vrednost true, če se celoten niz (ne le podniz) ovrednoti na čas, ki je oblikovan, kot je podano. V nasprotnem primeru vrne vrednost false.

Uporabite naslednjo skladnjo:
is_time (str_expr, date_time_mask)
kjer je:
Tabela 10. Parametri in opis za funkcijo is_time
Parameter Opis
str_expr Nizovni izraz.
date_time_mask Maska datuma/časa, ki podaja format, ki ga mora uporabljati str_expr, da bi is_time vrnila vrednost true.
V naslednjih primerih prvi primer vrne false, drugi primer pa vrne true. V obeh primerih je uporabljena funkcija convert zato, da pretvori nizovne izraze v časovni podatkovni tip, da ga funkcija is_time lahko ovrednoti.
is_time ("nov121995", "mm/dd/yyyy")

is_time ("11/12/1995", "mm/dd/yyyy")

timetostring

Funkcija s pomočjo formata, ki ga podate, časovni izraz pretvori v nizovni izraz. Uporabite naslednjo skladnjo:
timetostring (time_expr, date_time_mask)
kjer je:
Tabela 11. Parametri in opis za funkcijo timetostring
Parameter Opis
time_expr Izraz časovnega tipa.
date_time_mask Maska datuma/časa, ki določa format izhoda funkcije timetostring.
Naslednji primer sistemski čas pretvori v niz. Niz je oblikovan s pomočjo podane maske datuma/časa.
timetostring (systemtime(), "mm/dd/yyyy hh:tt:ss am")
Če je v zgornjem primeru systemtime() enak 1. julij 1985 ob 6 sekund čez 12:45 p.m., je izpisani niz naslednji:
7/1/1985 12:45:06 pm

Glejte informacije o funkciji systemtime().

stringtotime

Funkcija s pomočjo formata, ki ga podate, nizovni izraz pretvori v časovni izraz. Uporabite naslednjo skladnjo:
stringtotime (string_expr, date_time_mask)
kjer je:
Tabela 12. Parametri in opis za funkcijo stringtotime
Parameter Opis
string_expr Izraz nizovnega tipa.
date_time_mask Maska datuma/časa, ki podaja časovni format, ki naj bo uporabljen za pretvorbo.
V naslednjem primeru je HostTime nizovna spremenljivka.
stringtotime (HostTime, "mon. dd, yyyy hh:tt:ss am")
Če je
HostTime = "Jul. 1, 1985 12:45:06 pm"
je vrnjeni niz časovna vrednost, ki je enakovredna 1. juliju 1985 ob 6 sekund čez 12:45.

encode, decode

Ti funkciji nize pretvorijo v nize brez pomena zato, da bi prikrili vsebino. Encode in decode morata biti v istem delovnem toku.

Funkcijo decode je mogoče uporabiti za pretvarjanje nizovnih izrazov, ki vsebujejo več zakodiranih nizov.
encode (string_expr)

decode (string_expr)
kjer je:
Tabela 13. Parametri in opis za funkciji decode in encode
Parameter Opis
string_expr Izraz nizovnega tipa. Niz ne more biti literal.


Last updated: March 2016
bpfe012.htm

© Copyright IBM Corp. 2016.