Funkce pro práci s řetězci

(strcase string [which])
 
Argumenty:
 
string
- řetězec
 
which
- na jaké písmena se má konvertovat
 
Popis:
  - převod řetězce na malá nebo velká písmena
 
Návratové hodnoty:
  - řetězec - převedený na malá písmena (which = T)
 

- řetězec - převedený na velká písmena (which není uveden)

 
Příklady:
  (strcase "Sample")
    vrací "SAMPLE"
  (strcase "Sample" T)
    vrací "sample"

(strcat [string [string]...])
 
Argumenty:
 
string
- řetězec
 
Popis:
  - složení dílčích řetězců
 
Návratové hodnoty:
  - řetězec - poskládaný z dílčích řetězců
 

- 0 - nejsou-li zadány žádné řetězce, nebo jsou zadány prázdné řetězce

 
Příklady:
 

(strcat "a" "hoj")

    vrací "ahoj"
 

(strcat "a" "" "c")

    vrací "ac"
 

(strcat)

    vrací ""
 

(strcat "a" "b" "c")

    vrací "abc"

(strlen [string]...)
 
Argumenty:
 
string
- řetězec
 
Popis:
  - zjistí délku (ve znacích) řetězce
  - v případě, že je zadán větší počet řetězců ve funkci, délka = součtu znaků ze všech zadaných řetězců
 
Návratové hodnoty:
  - integer - reprezentující počet znaků v řetězci string
 

- 0 - nejsou-li zadány žádné řetězce, nebo jsou zadány prázdné řetězce

 
Příklady:
  (strlen "abcde")
    vrací 5
  (strlen "jedna" "dvě")
    vrací 8
  (strlen)
    vrací 0
  (strlen "")
    vrací 0

(substr string start [length])
 
Argumenty:
 
string
- řetězec
 
start
- kladné celé číslo reprezentující startovací pozici v řetězci, první znak řetězce = 1
 
length
- počet znaků v řetězci, které se mají vyjmout
    - ne-li hodnota zadána prochází se řetězec do konce
 
Popis:
  - vybere část řetězce délky length od pozice start
 
Návratová hodnota:
  - řetězec - vybraná část řetězce délky length od pozice start
 
Příklady:
  (substr "abcde" 2)
    vrací "bcde"
  (substr "abcde" 3 2)
    vrací "cd"
  (substr "abcde" 2 1)
    vrací "b"

(vl-prin1-to-string data)
 
Argumenty:
 
data
- jakékoli data AutoLISPu
 
Popis:
  - převede zadané data, aby vypadala jako po výstupu z funkce prin1
 
Návratová hodnota:
  - řetězec - reprezentující data AutoLISPu, jako by byly výstupem funkce prin1
 
Příklady:
  _$ (vl-prin1-to-string "abc") vrací "\"abc\""
  _$ (vl-prin1-to-string "c:\\acadwin") vrací "\"C:\\\\ACADWIN\""
  _$ (vl-prin1-to-string 'my-var) vrací "MY-VAR"

(vl-princ-to-string data)
 
Argumenty:
 
data
- jakékoli data AutoLISPu
 
Popis:
  - převede zadané data, aby vypadala jako po výstupu z funkce princ
 
Návratová hodnota:
  - řetězec - reprezentující data AutoLISPu, jako by byly výstupem funkce princ
 
Příklady:
  _$ (vl-princ-to-string "abc") vrací "abc"
  _$ (vl-princ-to-string "c:\\acadwin") vrací "C:\\ACADWIN"
  _$ (vl-princ-to-string 'my-var) vrací "MY-VAR"

(vl-string-elt string position)
 
Argumenty:
 
string
- řetězec
 
position
- pozice v řetězci, první znak má pozici 0
    - je-li position mimo rozsah generuje se chyba
 
Popis:
  - funkce zjistí ASCII reprezentaci znaku na dané pozici
 
Návratová hodnota:
  - integer - ASCII reprezentaci znaku
 
Příklady:
  _$ (vl-string-elt "May the Force be with you" 8)
    vrací 70

(vl-string-left-trim character-set string)
 
Argumenty:
 
character-set
- řetězec znaků, které mají být vyjmuty
 
string
- řetězec
 
Popis:
  - funkce vyjme zadané znaky ze začátku řetězce
 
Návratová hodnota:
  - řetězec - bez vyjmutých znaků
 
Příklady:
  _$ (vl-string-left-trim " \t\n" "\n\t STR ")
    vrací "STR "
  _$ (vl-string-left-trim "12456789" "12463CPO is not R2D2")
    vrací "3CPO is not R2D2"
  _$ (vl-string-left-trim " " " There are too many spaces here")
    vrací "There are too many spaces here"

Podívejte se na funkci vl-string-right-trim.

(vl-string-mismatch str1 str2 [pos1 pos2 ignore-case-p])
 
Argumenty:
 
str1
- první zkoumaný řetězec
 
str2
- druhý zkoumaný řetězec
 
pos1
- celé číslo určující pozici začátku pro porovnání řetězce str1
 
pos2
- celé číslo určující pozici začátku pro porovnání řetězce str2
 
ignore-case-p
- je-li argument T - nezáleží na velikosti znaků
 
Popis:
  - funkce porovnává dva řetězce, zda se v nich vyskytují stejné znaky na stejných pozicích (určují startovací pozice)
 
Návratová hodnota:
  - integer - počet stejných znaků
Příklady:
  _$ (vl-string-mismatch "VL-FUN" "VL-VAR")
    vrací 3
  _$ (vl-string-mismatch "vl-fun" "avl-var")
    vrací 0
  _$ (vl-string-mismatch "vl-fun" "avl-var" 0 1)
    vrací 3
  _$ (vl-string-mismatch "VL-FUN" "Vl-vAR")
    vrací 1
  _$ (vl-string-mismatch "VL-FUN" "Vl-vAR" 0 0 T)
    vrací 3

(vl-string-position char-code str [start-pos [from-end-p]])
 
Argumenty:
 
char-code
- integerová reprezentace ASCII kódu
 
str
- prohledávaný řetězec
 
start-pos
- startovací pozice v řetězci, první znak = 0
 
from-end-p
- je-li hodnota T = začíná se od konce
 
Popis:
  - hledá znak se zadaným ASCII kodem
 
Návratové hodnoty:
  - integer - reprezentující pozici znaku
  - nil - není-li nalezen žádný odpovídající znak
 
Příklady:
  _$ (vl-string-position (ascii "z") "azbdc")
    vrací 1
  _$ (vl-string-position 122 "azbzc")
    vrací 1
  _$ (vl-string-position (ascii "x") "azbzc")
    vrací nil
  _$ (vl-string-position (ascii "z") "azbzlmnqc")
    vrací 1
  _$ (vl-string-position (ascii "z") "azbzlmnqc" nil t)
    vrací 3

(vl-string-right-trim character-set string)
 
Argumenty:
 
character-set
- řetězec znaků, které mají být vyjmuty
 
string
- řetězec
 
Popis:
  - funkce vyjme zadané znaky z konce řetězce
 
Návratová hodnota:
  - řetězec - bez vyjmutých znaků
 
Příklady:
  _$ (vl-string-right-trim " \t\n" " STR \n\t ")
    vrací "STR"
  _$ (vl-string-right-trim "1356789" "3CPO is not R2D267891")
    vrací "3CPO is not R2D2"
  _$ (vl-string-right-trim "_" "There_are_too_many_spaces_here ")
    vrací "There_are_too_ many_spaces_here_____"

Podívejte se na funkci vl-string-left-trim.

(vl-string-search pattern string [start-pos])
 
Argumenty:
 
pattern
- řetězec obsahující vzor hledání
 
string
- řetězec, v kterém je hledán vzor
 
start-pos
- startovací pozice v řetězci, první znak = 0
 
Popis:
  - hledání zadaného vzoru v řetězci
 
Návratové hodnoty:
  - integer - pozice nalezeného vzoru, první znak = 0
  - nil - vzor nebyl nalezen
 
Příklady:
  _$ (vl-string-search "foo" "pfooyey on you")
    vrací 1
  _$ (vl-string-search "who" "pfooyey on you")
    vrací nil
  _$ (vl-string-search "foo" "fooey-more-fooey" 1)
    vrací 11

(vl-string-subst new-str pattern string [start-pos])
 
Argumenty:
 
new-str
- řetězec, který má nahradit vzor
 
pattern
- řetězec obsahující vzor hledání
 
string
- řetězec, v kterém je hledán vzor
 
start-pos
- startovací pozice v řetězci, první znak = 0
 
Popis:
  - funkce nahradí jeden řetězec (pattern) v řetězci za druhý (new-str)
 
Návratová hodnota:
  - řetězec - po všech provedených úpravách
 
Příklady:
  _$ (vl-string-subst "Obi-wan" "Ben" "Ben Kenobi")
    vrací "Obi-wan Kenobi"
  _$ (vl-string-subst "Obi-wan" "Ben" "ben Kenobi")
    vrací "ben Kenobi"
  _$ (vl-string-subst "Obi-wan" "Ben" "Ben Kenobi Ben")
    vrací "Obi-wan Kenobi Ben"
  _$ (vl-string-subst "Obi-wan" "Ben" "Ben \"Ben\" Kenobi" 3)
    vrací "Ben \"Obi-wan\" Kenobi"

(vl-string-translate source-set dest-set str)
 
Argumenty:
 
source-set
- řetězec znaků pro srovnání
 
dest-set
- řetězec znaků, které mají být nahrazeny za znaky v source-set
 
str
- řetězec, který se má prohledat a změnit
 
Popis:
  - funkce nahradí znaky v řetězci, znaky z množiny znaků
 
Návratová hodnota:
  - řetězec - po všech provedených úpravách
 
Příklady:
 

_$(vl-string-translate "abcABC" "123123" "A is a, B is b, C is C")

    vrací "1 is 1, 2 is 2, 3 is 3"
  _$ (vl-string-translate "abc" "123" "A is a, B is b, C is C")
    vrací "A is 1, B is 2, C is C"

(vl-string-trim char-set str)
 
Argumenty:
 
char-set
- řetězec znaků, které mají být vyjmuty
 
str
- řetězec, který se má prořezat znaky z char-set
 
Popis:
  - funkce vymaže znaky (obsažené v char-set) z řetězce str (ze začátku a konce řetězce str)
 
Návratová hodnota:
  - řetězec - po všech provedených úpravách
 
Příklady:
  _$ (vl-string-trim " \t\n" " \t\n STR \n\t ")
    vrací "STR"
  _$ (vl-string-trim "this is junk" "this is junk Don't call this junk! this is junk")
    vrací "Don't call this junk!"
  _$ (vl-string-trim "_" "_____Leave_me_alone______")
    vrací "Leave_me_alone"

(vl-string->list string)
 
Argumenty:
 
string
- řetězec
 
Popis:
  - funkce převede řetězec na seznam ASCII kódů jednotlivých znaků
 
Návratová hodnota:
  - seznam - v kterém každý prvek reprezentuje ASCII kód odpovídajícího znaku v řetězci
 
Příklady:
  _$ (vl-string->list "")
    vrací nil
  _$ (vl-string->list "12")
    vrací (49 50)

(wcmatch string pattern)
 
Argumenty:
 
string
- řetězec v kterém je hledán vzor
 
pattern
- řetězec - vzor hledání, může obsahovat tzv. "Wild Cards"
 
Popis:
  - funkce porovná vzor (se zástupnými znaky) s řetězcem
 
Návratové hodnoty:
  - T - pokud se řetězec a vzor shodují
  - nil - v opačném případě
 
Wild Cards (zástupné znaky):
  - při porovnávání je porovnáno jen prvních 500 znaků
  - požadujete-li použití více wild-cards najednou oddělte je čárkami
  # libovolné číslo
  @ libovolné písmeno
  - libovolný znak, který není ani číslo ani písmeno
  * libovolná posloupnost znaků, použitelné kdekoliv (začátek, střed, konec)
  ? libovolný znak
  ~ je-li prvním znakem ve vzoru, porovná všechno mimo vzor
  [...] libovolný jeden znak z množiny (v závorkách)
  [~...] libovolný jeden znak neuzavřený v množině (v závorkách)
  používá se uvnitř závorek k specifikování rozsahu pro jeden znak
  , odděluje dva vzory
  ` speciální znaky - čte následující znak jako literál, (např. použití - potřebujeme-li hledat specielní znak napíšeme před něj `)
 
Příklady:
  (wcmatch "Name" "N*")
    vrací T
  (wcmatch "Name" "???,~*m*,N*")
    vrací T
  (wcmatch "Name" "*`,*")
    vrací nil
  (wcmatch "Name" "*`\\*")
    vrací nil