2012-02-21 106 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

相关问题