學習《Building Applications with FME Objects》 之十 使用集合

來源:互聯網
上載者:User

GFME對象API包含下列集合對象:

FMEOStringArray,FMEOFeatureVector和FMEORectangleVector。

這些對象的主要用途是移動資料,比如作為一個參數或傳回值,這些對象並不是用來替代VB中的集合的。

 

如果你FME對象應用程式打算使用其他的集合對象來處理,你可以寫過程轉換你現有的集合到FME對象集合,例如,下面的FeatureVectorToCollection過程拷貝FMEOFeatureVector對象到VB集合對象:

Sub FeatureVectorToCollection(ByRef colFeatures As Collection)
    Dim i As Integer
    Dim lCount As Integer
    lCount = m_fmeFeatureVector.entries
    For i = 0 To lCount - 1
        If i = 0 Then
            Call colFeatures.Add(m_fmeFeatureVector.element(i))
        Else
            Call colFeatures.Add( _
                        m_fmeFeatureVector.element(i), , , i)
        End If
    Next i
End Sub

 

注意:上面代碼中的FOR中的IF語句是為了控制要素順序,如果順序不重要,可以刪除IF語句以提高效能。

 

這個例子展示了FME對象集合對象與VB集合對象的重要區別:FME對象用基於0的索引,VB使用基於1的索引。

 

在本章,將學習到:

  • 用ractangle和feature向量集合
  • 用字串集合

 

使用向量集合

FMEOFeatureVector和FMEORectangleVector集合相似,唯一的不同是,前者儲存FMEOFeature對象,後者儲存FMEORectangle對象,FMEORectangleVector的方法和屬性如:

 

下列表描述屬性和方法:

如果你的程式操作大型資料集,你應該考慮使用FMEOFeatureVectorOnDisk 集合替換FMEOFeatureVectorOnDisk,用磁碟代替記憶體儲存要素,這樣你的應用程式操作大型資料不會受到電腦虛擬記憶體的限制,FMEOFeatureVectorOnDisk 的方法和屬性如:

 

 

使用字串集合

FMEOStringArray集合Object Storage Service字串對象,大部分FME對象的方法和屬性用字串數組作為參數,用於輸入和輸出。該對象方法和屬性如:

 

下列代碼在一個數組中包含九個元素string1, "string 2", aaa, bbb, ccc, <NULL>, eee, xxx, and yyyy.:

Set fmeArray = m_fmeSession.createStringArray
sDelimiter = ";;"
sToken = "   "

s1 = "string1"
s2 = """string 2"""
s3 = "aaa;bbb;ccc;;eee"
s4 = "xxx      yyyy      "
Call fmeArray.append(s1)
Call fmeArray.append(s2)
Call fmeArray.appendCSVString(s3, sDelimiter)
Call fmeArray.appendTokenizeString(s4, sToken)

 

 

參考資料:

《Building Applications with FME Objects》February 2005

轉載請註明文章來源 http://www.cnblogs.com/booolee

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.