Functie de despartire sir (h_SplitStr)

Gestiunea şi contabilitatea activităţii comerciale, financiare şi a stocurilor

Moderator: HAMOR

Post Reply
imre.bodosi
Site Admin
Posts: 456
Joined: 08 Dec 2011, 10:49

Functie de despartire sir (h_SplitStr)

Post by imre.bodosi »

Functia h_SplitStr(sStr,[cSepLista],[sSepElem])
//realizat de Santha Lorant

Functia desparte un string intr-un array in functie de separatoarele definite

Parametrii:
sStr - stringul de despartit
cSepLista - optional - caracter de separare a stringului
- poate fi NIL sau un singur caracter
sSepElem - -optional - string cu caracterele de despartire a unui string
- poate fi NIL sau sir de lungime mai mare de 0

CSepLista si sSepElem nu pot fi NIL simultan

Returneaza:
In cazul unor erori se returneaza NIL
In cazul sStr gol returneaza o matrice goala
In cazul in care cSepLista != NIL si sSepElem=NIL
returneaza o matrice cu subsiruri di sStr despartite conform cSepLista

Cazuri:

1. Lista simpla a caror elemente sunt despartite cu ;
Exemplu:
h_SplitStr(";a;b;c;",";",)->{"","a","b","c"}

2. In cazul in care cSepLista = NIL si sSepElem!=NIL,
elementele listei sunt despartite cu diverse caractere.
Fiecare caracter trebuie sa apara in singura data,
in ordinea in care apar in sSepElem,
returneaza o matrice cu subsirurui despartite de caracterele din sSepElem
Exemplu:
h_SplitStr("pu=10.00,cod=123456") -> {{"pu","10.00"},{"cod","123456"}}
h_SplitStr("/a;b=c" ,,"/;=")->{"","a","b","c"}
h_SplitStr("/a;b=c;",,"/;=")->NIL // eroare, apare de doua ori ";"
h_SplitStr("/a=b;c" ,,"/;=")->NIL // eroare, in sir apare ";" dupa "="

3.In cazul in care cSepLista != NIL si sSepElem!=NIL,
lista bidimensionala, elementele listei sunt liste.
In acest caz in prima faza stringul se desparte conform cSepList, iar
in a doua faza fiecare element din matrice se desparte conform sSepElem.
Returneaza o matrice bidimensionala.
Exemplu:
h_SplitStr("/a=b;c/d=e" ,";","/=")->{{"","a","b"},{"c","d","e"}
h_SplitStr("c/d=" ,";","/=")->{{"c","d",""}}
Post Reply