2016-04-05 11 views
3

İşte metin. Ben tüm spesifik saati almak ve #:## veya ##:## böyle bir zaman biçimi vardır tüm metin nasıl alabilirim bir listeTüm zaman dizeleri vb.net'de bir metin kutusuna nasıl alınır

7:00-8:00/9:00-10:00/3:00-4:00 

üzerine eklemek istiyorum. Böyle liste içindeki çıkış yapmalıdır:

7:00 
8:00 
9:00 
10:00 
3:00 
4:00 
+3

Büyük harf kullanımı [SHOUTING] (http://jaysondbradley.com/wp-content/uploads/2014/01/angry.jpg) bize –

+3

Üzgünüm arkadaşım. Sadece stresliyim ve hayattaki kuralları ve davranışlarımı unuttum. Üzgünüz – Ymca

cevap

1

deneyin bu

Dim s As String = "7:00-8:00/9:00-10:00/3:00-4:00" 
s = s.Replace("/"C, "-"C) 
Dim array As String() = s.Split("-"C) 
For Each items In array 
    //add this items to list control 
Next 

Şimdi sadece kumandayı

+0

Köşeli parantezler için 'String' –

+0

@MattWilko Teşekkürler Güncelleştirmesi Bildir –

+0

Yanıtınız için teşekkür ederiz. Efendim, bölünmüş dizeleri liste kutusunun içine nasıl koyabilirim? TYIA – Ymca

0

listelemek için bu dizi yineleme ve bu dizi elemanları eklemeniz gerekir dize Dizi sahip Bunu deneyebilirsiniz:

Dim list As String = "7:00-8:00/9:00-10:00/3:00-4:00" 
Dim formatList As String() = list.Replace("-", "/").Split("/"c) 

For Each element In formatList 
    MessageBox.Show(element) 'here you should add them to the list 
Next 
+0

Bölme, aşırı yükler. Tek bir elementle yani 'Split ("/" c) ' –

+1

@MattWilko ile bir char dizisi kullanmalısınız. Teşekkürler, herkese nasıl yaptıklarını öğrenmek –

+0

İstenildiği gibi çalışmıyor (gerekeni anladıysam) zaman dilimi bir saatten büyükse. Sanırım aradaki tüm saatler listelenmeli. –

0

İki saat arası tüm saatleri listelemek ister misiniz?

TimeSpan nesnelerini ve bunları toplamak için HashSet(Of TimeSpan) nesnelerini ayıklamak için dize yöntemlerini kullanabilirsiniz.

Dim text = "7:00-8:00/9:00-10:00/3:00-4:00" 
Dim tsStart As TimeSpan 
Dim tsEnd As TimeSpan 
Dim timespans = From token In text.Split("/"c) 
       Select startEnd = token.Split("-"c) 
       Where startEnd.Length = 2 _ 
        AndAlso TimeSpan.TryParse(startEnd(0), tsStart) _ 
        AndAlso TimeSpan.TryParse(startEnd(1), tsEnd) 
       Select New With {.Start = tsStart, .End = tsEnd} 

Dim timeSet As New HashSet(Of TimeSpan) 
For Each span In timespans 
    Dim between = span.End - span.Start 
    For h As Int32 = 0 To between.Hours 
     timeSet.Add(span.Start.Add(TimeSpan.FromHours(h))) 
    Next 
Next 

For Each ts In timeSet 
    listBox.Items.Add(ts.ToString()) 
Next 

Bu aynı zamanda giriş doğrular ve eğer istenirse TimeSpan yerine sokulmasıyla sipariş sağlar: ayrıştırmak ve başı ve sonu arasındaki ayıklamak için TimeSpan yöntemlerini kullanın. Çoğaltmaya izin verilmesi gerekiyorsa HashSet(Of T)'u List(Of T) ile değiştirin.

İlgili konular