2012-02-21 89 views
0

這更是一個問題的第二部分中,這裏here按日期/時間的一部分#2

下面的代碼的偉大工程,但我忘了什麼事開始合併兩個字符串,並命令他們,還出現了一個城市和國家的日期/時間之前,實例是:

strcountstf = "Chicago, IL,02/01/2012 3:05am###,Akron,OH,02/02/2012 7:05am###,Nashivlle,TN,02/05/2012 8:30pm###" 
strDateNTimes = "Buffalo,NY,03/01/2011 2:20am###,Las Vegas,NV,12/02/2012 8:00am###,Mount Vernon,IN,02/06/2012 6:45pm###" 

下面是工作的代碼,但我忘了市及州加入到strcountstf和strDateNTimes字符串。現在當城市,國家被添加時,它不起作用。

我想按日期/時間排序,但顯示城市,州作爲輸出/結果...請再次幫助! (我知道我知道)。

dim strcountstf 
dim strDateNTimes 
dim strCOMBO 
dim arrCOMBO 
dim strCOMBOSorted 
dim objSortedList 
dim i 

strcountstf = "02/01/2012 3:05am###,02/02/2012 7:05am###,02/05/2012 8:30pm###" 
strDateNTimes = "03/01/2011 2:20am###,02/02/2012 8:00am###,02/06/2012 6:45pm###" 

strCOMBO = strcountstf & "," & strDateNTimes 

arrCombo = Split(strCOMBO, ",") 

Set objSortedList = Server.CreateObject("System.Collections.SortedList") 

For i = LBound(arrCombo) To UBound(arrCombo) 
    Call objSortedList.Add(CDate(Replace(arrCombo(i), "###", "")), arrCombo(i)) 
Next 

strCOMBOSorted = "" 

For i = 0 To objSortedList.Count - 1 
    strCOMBOSorted = strCOMBOSorted & ", " & objSortedList.GetByIndex(i) 
Next 

strCOMBOSorted = Right(strCOMBOSorted, Len(strCOMBOSorted) - 2) 

Set objSortedList = Nothing 

Response.Write("<br>") 
Response.Write(strCOMBO) 
Response.Write("<br>") 
Response.Write(strCOMBOSorted) 
+0

哇!這個傳奇即將在藍光? – Rafael 2012-02-23 16:11:45

+0

@拉菲爾劇院第一次,但只有限量發行的好萊塢人羣,你知道... :-) – compcobalt 2012-02-23 16:24:41

回答

2

創建一個具有城市,州和時間屬性的類以及一個方法來給出一個良好形狀的字符串並相應地填充它們。

Class OmNomNom 
    Public City, State 
    Private time_, timeStr_ 
    Public Property Let [Time](t) 
     timeStr_ = t 
     time_ = cDate(replace(t, "###", "")) 
    End Property 
    Public Property Get [Time] ' as Date 
     [Time] = time_ 
    End Property 

    Public Function Regurgigate ' as String 
     Regurgigate = join(array(City, State, timeStr_), ",") 
    End Function 

End Class 

Set objSortedList = Server.CreateObject("System.Collections.SortedList") 
For each chocolateCookie in array(strcountstf, trDateNTimes) 
    for i = 0 to ubound(chocolateCookie) step 3 
     Set myOmNomNom = new omNomNom 
     myOmNomNom.City = chocolateCookie(i) 
     myOmNomNom.State = chocolateCookie(i+1) 
     myOmNomNom.Time = chocolateCookie(i+2) 
     objSortedList.Add myOmNomNom.Time, myOmNomNom 
    next 
next 

現在,您可以通過排序列表迭代(像之前)讓您正確的字符串,並從Regurgigate方法得到的字符串:objSortedList.GetByIndex(i).Regurgigate()

免責聲明:示例代碼沒有進行測試。

+0

這是偉大的!我將不得不改變一些代碼以使其適用於我,但這是一個很好的例子...非常感謝你,現在我明白如何讓它工作... – compcobalt 2012-02-23 16:18:38

1

你需要使用的功能分裂(),使每一個字符串,然後通過數組循環的數組,並創建一個全新的陣列。如果字符串長於2個字符(即不是一個狀態)並且不包含###(即不是日期),則將第一個數組值加載爲「city」。因此,如果它只匹配2個字符,則它是一個狀態(將其加載到第二個數組值中),最後但並非最不重要的,如果它有###,則將它加載到第三個數組值中。

結束了的東西,如:

Array(
[0] => 'City' => 'Buffalo', 'State' => 'NY', 'Date' => '03/01/2011 2:20am###' 
[1] => 'City' => 'Chicago', 'State' => 'IL', 'Date' => '03/01/2011 2:20am###' 
) 

一旦你有,你可以調整你已經適應了新的領域和排序他們SortedList的代碼。

+0

你請發表一個我如何使這項工作的例子?..再次... thx – compcobalt 2012-02-21 22:58:25

+2

對不起我已經完全和邏輯地解釋了它。作爲程序員,你應該能夠在10分鐘內完成這項工作。我不習慣發佈代碼。抱歉。 – user85569 2012-02-21 23:02:56

+0

我從來沒有說過我是一名程序員,現在我做過嗎? – compcobalt 2012-02-21 23:05:11