06. november 2012 - 10:39Der er
5 kommentarer og 1 løsning
Finde bestemte dato ud fra string
Hej, jeg prøver at få et program at sige fra, hvis der er nogle datoer i en string der er 7 eller mindre dage frem.
Jeg har denne kode indtil videre, men jeg er låst fast og aner ikke hvordan jeg videre skal tjekke min string for enkelte dates.. Jeg har fået datoerne til at fylde en String, hvor de er skilt ad med vbNewLines. Sig endelig til hvis der er en simplere måde ;)
koden i frmMain.Load: --------------------- Dim Reader As System.IO.StreamReader Dim intI As Integer Dim tempString As String = "" Dim strLines() As String Reader = New System.IO.StreamReader(strPath & "\" & strFile) strLines = Strings.Split(Reader.ReadToEnd, Environment.NewLine) Dim dato(strLines.Length - 2) As Date For intI = 0 To dato.Length - 1 dato(intI) = Mid(strLines(intI), 1, 10) tempString &= dato(intI) & vbNewLine Next intI Reader.Close() ----------------------------------------------
Nogen der kan hjælpe mig med dette? Jeg har stirret mig blind på dette problem i flere dage nu, aner ikke hvordan jeg kommer videre :/
Tak for det, men nu skal jeg så loope igennem tempString, men hvordan gør jeg det? For intI = 0 To (lines in tempString) If (current line in tempString <= DateTime.Now.AddDays(7)) Then MsgBox(current line in tempString) End If Next
Eller det vil sige at jeg nok skal bruge CDate også:
For intI = 0 To (lines in tempString) Dim tempDate as Date = CDate(current line in tempString) If (tempDate <= DateTime.Now.AddDays(7)) Then MsgBox(tempDate) End If Next
Er det overhovedet muligt, eller skal jeg ændre det til array/collection/list?
Jeg har fundet ud af det, men det ser lidt rodet ud.. Der må være en pænere, simplere måde?
Her er hvad jeg har: ------------------------- Dim dato(strLines.Length - 2) As Date
' Første loop tjekker hvor mange datoer der er 7 dage frem For intI = 0 To dato.Length - 1 dato(intI) = Mid(strLines(intI), 1, 10) If (dato(intI) <= DateTime.Now.AddDays(7)) Then intJ += 1 End If Next intI ' Så jeg kan "Dimme" tempDate Dim tempDate(intJ - 1) As Date intJ = 0
' Næste loop tilføjer datoerne til et array For intI = 0 To dato.Length - 1 If (dato(intI) <= DateTime.Now.AddDays(7)) Then tempDate(intJ) = dato(intI) & vbNewLine intJ += 1 End If Next intI
' Tredje loop tjekker arrayet med linjerne i min txt fil, og skriver den fulde linje i en MsgBox For intI = 0 To strLines.Length - 2 For intJ = 0 To tempDate.Length - 1 If (Mid(strLines(intI), 1, 10) = tempDate(intJ)) Then MsgBox(strLines(intI)) End If Next intJ Next intI --------------
Det kan måske gøres pænere, men jeg ved ikke hvordan..?
Ingen der kan hjælpe? Den siger også fra hvis det er i dag eller før, det skal den ikke..
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.