Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Går inte köra en sub 2ggr

Postades av 2006-12-01 16:36:50 - Daniel Melin, i forum asp - allmänt, Tråden har 7 Kommentarer och lästs av 716 personer

Försöker köra en sub 2ggr.. men den avbryter efter en körning och kör inte vidare..

<code=asp>
sub MakeCalendar(strDate)
strHTML = ""
strHTML = strHTML & "<table class=""calendar"">" & vbCrLf
strHTML = strHTML & vbTab & "<tr>" & vbCrLf

strStartDate = DateAdd("d", 1 - DatePart("d", strDate), strDate)
strEndDate = DateAdd("d", -1, DateAdd("m", 1, strStartDate))

intFDoM = DatePart("w", strStartDate, vbMonday)
For I = 1 To intFDoM - 1
d = d + 1
strHTML = strHTML & vbTab & vbTab & "<td class=""nodate"">&nbsp;</td>" & vbCrLf
Next
For I = 1 To DateDiff("d", strStartDate, strEndDate) + 1
d = d + 1
If d = 8 Then
d = 1
strHTML = strHTML & vbTab & "</tr>" & vbCrLf
strHTML = strHTML & vbTab & "<tr>" & vbCrLf
End If

If DatePart("yyyy", Date) & "-" & DatePart("m", Date) & "-" & DatePart("d", Date) = DatePart("yyyy", strDate) & "-" & DatePart("m", strDate) & "-" & I Then
strHTML = strHTML & vbTab & vbTab & "<td class=""today"">" & I & "</td>" & vbCrLf
Else
strHTML = strHTML & vbTab & vbTab & "<td class=""date"">" & I & "</td>" & vbCrLf
End If
Next
For I = d To 6
strHTML = strHTML & vbTab & vbTab & "<td class=""nodate"">&nbsp;</td>" & vbCrLf
Next
strHTML = strHTML & vbTab & "</tr>" & vbCrLf
strHTML = strHTML & "</table>" & vbCrLf

response.write strHTML

End sub

For I=-2 to 2
MakeCalendar DateAdd("m", I, Date())
Next
</code>


Svara

Sv: Går inte köra en sub 2ggr

Postades av 2006-12-01 18:57:25 - Robert Israelsson

Du har återanvänt din variabel I i sub-proceduren vilket ställer till problem. Om I inte blir större än 2 i <code>
For I = 1 To DateDiff("d", strStartDate, strEndDate) + 1
</code>
så blir den i alla fall det i
<code>
For I = d To 6
</code>
vilket gör att du redan efter första anropet till MakeCalendar kommer att gå ur loopen. För att rätta till problemet är det nog enklast att byta namn på variablen du använder i loopen.


Svara

Sv:Går inte köra en sub 2ggr

Postades av 2006-12-01 23:09:15 - Daniel Melin

oj.. det missade jag :P

tackar


Svara

Sv: Går inte köra en sub 2ggr

Postades av 2006-12-02 11:05:57 - Andreas Hillqvist

Jag gillar inte att du konkatenerar din sträng. Det slösar resurser i onödan.
Varje gång du lägger till något till strängar, alokeras ny plats för strängen, den gamla strängen kopieras över, den ny strängen läggs till.
Då är det bättre att skriva ut, Response.Write.

En alternativ kalender jag konpat ihop:

Sub WriteCalendarHead(Y, M, FirstDayOfWeek)
Dim DayOfWeek
	Response.Write vbTab + "<caption>" & Y & " " & MonthName(M) & "</caption>" + vbCrLf + _
	               vbTab + "<tr>" + vbCrLf
	For DayOfWeek = 1 To 7
		Response.Write vbTab + vbTab + "<th>" & WeekdayName(DayOfWeek, True, FirstDayOfWeek) & "</th>" + vbCrLf
	Next
	Response.Write vbTab + "</tr>"
End Sub

Sub WriteCalendar(Y, M, Value, FirstDayOfWeek)
Dim DayOfWeek
Dim DayOfMonth

Dim FirstDate
Dim FirstDateInMonth
Dim LastDate
Dim LastDateInMonth

    FirstDateInMonth = DateSerial(Y, M, 1) 
    FirstDate = DateAdd("d", 1 - Weekday(FirstDateInMonth, FirstDayOfWeek), FirstDateInMonth)
    
    LastDateInMonth  = DateSerial(Y, M + 1, 0) 
    LastDate = DateAdd("d", 7 - Weekday(LastDateInMonth, FirstDayOfWeek), LastDateInMonth)
    
    Response.Write "<table class=""calendar"">" + vbCrLf
    WriteCalendarHead Y, M, FirstDayOfWeek
                   
    For DayOfMonth = FirstDate To LastDate Step DateAdd("d", 1, 0) 
		DayOfWeek = DayOfWeek + 1
        If DayOfWeek = 1 Then
            Response.Write vbTab + "<tr>" + vbCrLf            
        End If        

        If DayOfMonth < FirstDateInMonth or DayOfMonth > LastDateInMonth Then
			Response.Write vbTab + vbTab + "<td class=""nodate"">&nbsp;</td>" + vbCrLf
		ElseIf DayOfMonth = Value Then
            Response.Write vbTab + vbTab + "<td class=""today"">" & Day(DayOfMonth) & "</td>" + vbCrLf
        Else
            Response.Write vbTab + vbTab + "<td>" & Day(DayOfMonth) & "</td>" + vbCrLf
        End If

        If DayOfWeek = 7 Then
			DayOfWeek = 0
			Response.Write vbTab + vbTab + "</tr>" + vbCrLf 			
		End If
    Next
    Response.Write "</table>" + vbCrLf
End sub

	Dim Today
	Dim Offset
	Dim DateInMonth
	
	Today = Date()
	
	For Offset = -2 to 2
		DateInMonth = DateAdd("m", Offset, Today)
		WriteCalendar Year(DateInMonth), Month(DateInMonth), Today, vbMonday
	Next


Svara

Sv:Går inte köra en sub 2ggr

Postades av 2006-12-02 17:52:05 - Robert Israelsson

<b>Varje gång du lägger till något till strängar, alokeras ny plats för strängen, den gamla strängen kopieras över, den ny strängen läggs till.</b>

Hur är det med att använda en StringBuffer istället?


Svara

Sv: Går inte köra en sub 2ggr

Postades av 2006-12-03 13:25:33 - Andreas Hillqvist

Finns det en sådan i gamla ASP?


Svara

Sv:Går inte köra en sub 2ggr

Postades av 2006-12-03 19:21:32 - Robert Israelsson

Sorry, du har rätt, det var med .Net som den kom, och det är självklart en StingBuilder jag menar och inte en StringBuffer.

Men frågan kvarstår, utökar den bara minnet som används eller allokerar den sig helt och hållet till en ny adress på det sätt du beskriver för variabler?


Svara

Sv: Går inte köra en sub 2ggr

Postades av 2006-12-03 23:20:49 - Andreas Hillqvist

Ett antagande jag gjort med det beteende av strängkonkatenering.

Just i detta fallet är det ju relativt få strängkonkratteneringar som görs.

Men om det rört sig om att gå igenom et recordset, så kommer det ju kunna växa. Därmed inte skala så bra.

Det gäller att varna i rätt tid innan man drar ner produktionsservrar. ;-)


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 169
27 953
271 704
764
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies