1

Konu: Array'leri birleştirmek ve aynıları ayıklamak

Merhaba,

Bir türlü verimli bir biçimde çözemediğim bir sorunum var.

Elimde 3 array var (diyelim array1, array2, array3). Hepsi de tek boyutlu ve genellikle her birinin max. elaman sayısı 15'i geçmiyor.

Yapmak istediğim şey bunları birleştirmek ve aynı değer alanlar varsa onları ayıklayarak her birini teke düşürmek.
Ancak array'ler her zaman data içermeyebiliyor. Yani boş olabiliyor.
Örneğin; array1'de 5 eleman, array2'de 7 eleman, array3'de ise 0 eleman gibi.

Yardım ederseniz sevinirim.
Şimdiden teşekkürler...

2

Re: Array'leri birleştirmek ve aynıları ayıklamak

Visual Fox Pro
LOCAL ARRAY a[5]

LOCAL ARRAY b[3]
LOCAL ARRAY c[2]
 
a[1] = 1
a[2] = 2
a[3] = 3
a[4] = 4
a[5] = 5
 
b[1] = 5
b[2] = 6
b[3] = 7
 
c[1] = 1
c[2] = 8
 
CREATE CURSOR atemp ( aitem I )
 
InsertArrayIntoCursor(@a)
InsertArrayIntoCursor(@b)
InsertArrayIntoCursor(@c)
 
SELECT DISTINCT aitem FROM atemp
 
 
FUNCTION InsertArrayIntoCursor( myArray)
  FOR idx = 1 TO ALEN(myArray,1)
    INSERT INTO atemp VALUES (myArray[idx])
  ENDFOR
ENDFUNC
Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

3 Son düzenleyen, foxman (28.05.2012 13:57:50)

Re: Array'leri birleştirmek ve aynıları ayıklamak

Visual Fox Pro
LOCAL ARRAY a[5,1]

LOCAL ARRAY b[3,1]
LOCAL ARRAY c[2,1]
 
a[1] = 1
a[2] = 2
a[3] = 3
a[4] = 4
a[5] = 5
 
b[1] = 5
b[2] = 6
b[3] = 7
 
c[1] = 1
c[2] = 8
 
CREATE CURSOR atemp ( aitem I )
 
APPEND FROM ARRAY a
APPEND FROM ARRAY b
APPEND FROM ARRAY c
 
SELECT DISTINCT aitem FROM atemp INTO ARRAY array1

4

Re: Array'leri birleştirmek ve aynıları ayıklamak

Her iki çözüm için de teşekkürler.