Search  
Thursday, May 24, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  FoxPro  FoxPro 2.x DOS  Combinari in fo...
 Combinari in fox
 
 7/10/2006 3:46:37 PM
User is offlinevipulescu
3 posts


Combinari in fox
 (Romania)

am o tabela Rezultate.dbf cu doua campuri (meci, variante), cu inregistrari de genul

Meci Variante
1          1
1          x
1          2
2          1
2          2
4          1
4          x
5          x
6          1
6          x


Cum pot sa scot toate combinatiile "pronosport" de variante posibile?

adica
Meci(1)1 Meci(2)1 Meci(4)1 Meci(5)x Meci(6)1,
Meci(1)x Meci(2)1 Meci(4)1 Meci(5)x Meci(6)1,
Meci(1)2 Meci(2)1 Meci(4)1 Meci(5)x Meci(6)1,
Meci(1)1 Meci(2)2 Meci(4)1 Meci(5)x Meci(6)1,
Meci(1)x Meci(2)2 Meci(4)1 Meci(5)x Meci(6)1,
Meci(1)2 Meci(2)2 Meci(4)1 Meci(5)x Meci(6)1,
...

 

 

 

 7/10/2006 7:16:08 PM
User is offlineanonymous
0 posts


Re: Combinari in fox
 (Romania)
Pai da, dar ce vrei sa faci cu datele dupa ce le scoti, ce vrei sa vezi?, cate variante sunt pentru fiecare meci, vrei sa afisezi toate variantele pentru fiecare meci, vrei sa le afisezi intr-un raport... trebuie detalii.
 7/11/2006 12:33:30 PM
User is offlinevipulescu
3 posts


Re: Combinari in fox
 (Romania)

as vrea sa afisez toate combinatiile posibile (sa le pun intr-un fis txt de exemplu)

adica, daca as avea 3 meciuri (A, B si C), sa am:

A1B1C1

AxB1C1

A2B1C1

A1BxC1

A1B2C1

A1B1Cx

...

A2B2C2

 

Banuiec ca trebuie facut cumva recursiv si habar n-am cum se face asta in fox

 

 7/11/2006 1:06:39 PM
User is offlineanonymous
0 posts


Re: Combinari in fox
 (N/A)
Structurile repetitive in Fox ar fi FOR ... NEXT si DO WHILE ... ENDO.
Algoritmul care sa genereze aceste combinari este general si nu vad de ce ar depinde de limbaj.
 7/11/2006 1:44:49 PM
User is offlineDanTodor
297 posts
4th


Re: Combinari in fox
 (Romania)
Mda, ar mai trebui sa se si scrie singur :)) ..
 7/11/2006 2:47:42 PM
User is offlinevipulescu
3 posts


Re: Combinari in fox
 (Romania)

nah, problema e ca nu stii de la inceput cate meciuri sunt, iar eu nu stiu cum sa folosesc ceva recursiv in fox...

poti sa faci cu for in for in for, dar e cam stupid in cazul in care ai poate 20 de meciuri.

am intrebat, ca poate venea cineva cu o solutie eleganta

 7/12/2006 11:07:15 AM
User is offlineanonymous
0 posts


Re: Combinari in fox
 (N/A)
OK, iaca o solutie pe care eu o folosesc, fara a fi neaparat eleganta. Codul este de VisualFox, cred ca pe FoxDos artrebui un create table.

nTotalMeciuri = 20 && nr total de meciuri
&& array cu rezultate posibile
dimension ArrResult(3)
ArrResult(1) = "1"
ArrResult(2) = "X"
ArrResult(3) = "2"

create cursor cResult (flgNivel N(3), cSir C(20))
select cResult
append blank
replace flgNivel with 0, cSir with ""

for i = 1 to nTotalMeciuri
use in select("cTemp")
select cSir from cResult;
where flgNivel = (i-1);
into cursor cTemp

select cTemp
scan
for j = 1 to 3
lcCode = alltrim(cTemp.cSir) + ArrResult(j)
select cResult
append blank
replace flgNivel with i, cSir with lcCode
next
endscan
next

select * from cResult;
where flgNivel = nTotalMeciuri;
into cursor cFinal

&& in acest cFinal
&& sunt toate combinatiile posibile
&& sub forma sir de caractere
&& rezultatul meciului k
&& este substr(cSir, k, 1)
 7/12/2006 11:35:08 AM
User is offlineDanTodor
297 posts
4th


Re: Combinari in fox
 (Romania)
Nu am nici un Fox la indemina, dar parca in SQL echivalentul combinatiilor este FULL JOIN, deci daca pui cele doua elemente in doua tabele si faci un SELECT cu FULL JOIN din ambele, s-ar putea sa obtii mai usor rezultatul dorit.
 7/12/2006 12:18:52 PM
User is offlineanonymous
0 posts


Re: Combinari in fox
 (N/A)
Este foarte corect: rezultatul unui SELECT fara conditie de jonctiune este produsul cartezian. Doar ca acel select ar trebui repetat de atitea ori cite meciuri sunt.
Si ca sa mai iasa si nume de coloane cit de cit controlabile ... doar macrosubstitutia salveaza situatia.
  FoxPro  FoxPro 2.x DOS  Combinari in fo...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement