| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Chatkode - hvordan vendes liniernes rækkef~ Fra : Jakob Munck | 
  Dato :  04-09-01 16:14 |  
  |   
            Denne chatkode er lavet af Lauritz Jensen, og jeg og jeg forsøger at bruge
 den i stedet for database i en lille chat. Men koden her skriver
 chatlinierne ud sådan at de sidst indskrevne kommer nederst. Jeg vil gerne
 vende det, så de sidst indskrevne kommer øverst. Jeg mener der skal rettes
 noget i en af de linier, jeg har skrevet + foran, men hvad?
 
 Råd modtages med glæde.
 
 <%
 ' messagelist = liste over tidspunkt og besked for alle indsatte linier i
 chatten.
 
 Dim func, message
 randomize
 message = Left(Trim(Request("message")), 100)
 func = LCase(Trim(Request("func")))
 
 If (func = "") Then
   Response.Write "<frameset rows=""*,100"">" & vbCrLf
   Response.Write " <frame name=""messageframe""
 src=""chat.asp?func=message"">" & vbCrLf
   Response.Write " <frame name=""formframe"" src=""chat.asp?func=form"">" &
 vbCrLf
   Response.Write "</frameset>" & vbCrLf
 ElseIf (func = "message") Then
   If Not (message = "") Then
     Application.Lock
 +    messagelist = Application("messagelist")
 +    Do While (UBound(split(messagelist, "<br>"))>30)
  +     messagelist = Mid(messagelist, InStr(messagelist, "<br>")+4)
  +  Loop
  +   If Not (messagelist = "") Then messagelist = messagelist & "<br>"
  +   messagelist = messagelist & "<b>" & Now & "</b>: " &
 Server.HtmlEncode(message)
  +   Application("messagelist") = messagelist
     Application.UnLock
   Else
     messagelist = Application("messagelist")
   End If
   Response.Write "<META HTTP-EQUIV=""Refresh"" CONTENT=""15;
 URL=chat.asp?func=message&rnd=" & ran & """>" & vbCrLf
   Response.Write "<body bgcolor=#ffffff>" & vbCrLf
   Response.Write messagelist & vbCrLf
   Response.Write "</body>" & vbCrLf
 ElseIf (func = "form") Then
   Response.Write "<body bgcolor=#ffffff>" & vbCrLf
   Response.Write " <form name=""chatform"" action=""chat.asp""
 target=""messageframe""
 onSubmit=""document.chatform.message.value=document.chatform.dummymessage.va
 lue;document.chatform.dummymessage.value='';document.chatform.dummymessage.f
 ocus();"">" & vbCrLf
   Response.Write "  <input type=hidden name=""func"" value=""message"">" &
 vbCrLf
   Response.Write "  <input type=hidden name=""message"" value="""">" &
 vbCrLf
   Response.Write "  <input type=text name=""dummymessage"" value=""""
 maxlength=100>" & vbCrLf
   Response.Write "  <input type=submit value=""Send"">" & vbCrLf
   Response.Write " </form>" & vbCrLf
   Response.Write "</body>" & vbCrLf
 Else
   Response.Redirect "/"
 End If
 
 %>
 
 v.h.
 Jakob Munck
 
 
 
  
            
             |   |   
            
        
 
            
         
           Anders Holbøll (04-09-2001) 
         
	
            | Kommentar Fra : Anders Holbøll | 
  Dato :  04-09-01 16:23 |  
  |   
            Jakob Munck wrote:
 > 
 > Denne chatkode er lavet af Lauritz Jensen, og jeg og jeg forsøger 
 > at bruge den i stedet for database i en lille chat. Men koden her 
 > skriver chatlinierne ud sådan at de sidst indskrevne kommer 
 > nederst. Jeg vil gerne vende det, så de sidst indskrevne kommer 
 > øverst. Jeg mener der skal rettes noget i en af de linier, jeg 
 > har skrevet + foran, men hvad?
 
 Prøv at skifte det med + markerede ud med:
 
 messagelist = Application("messagelist")
 messagelist = "<b>" & Now & "</b>: " & _
               Server.HtmlEncode(message) & "<br>" & messagelist
 messagelist = join(split(messagelist, "<br>", 30), "<br>")
 Application("messagelist") = messagelist
 
 -- 
 Anders
  
            
             |   |   
            
        
 
            
         
           Jakob Munck (04-09-2001) 
         
	
            | Kommentar Fra : Jakob Munck | 
  Dato :  04-09-01 18:45 |  
  |   
            Tak for rådet, men det gav ikke det ønskede resultat, men der kom dog heller
 ingen fejlmelding. ¨
 
 Der kom - tilsyneladende - bare en masse nye linier med denne kode i den
 sidste indtastning.
 
 >
 > Prøv at skifte det med + markerede ud med:
 >
 > messagelist = Application("messagelist")
 > messagelist = "<b>" & Now & "</b>: " & _
 >               Server.HtmlEncode(message) & "<br>" & messagelist
 > messagelist = join(split(messagelist, "<br>", 30), "<br>")
 > Application("messagelist") = messagelist
 >
 > --
 > Anders
 
 
  
            
             |   |   
            
        
 
            
         
            Anders Holbøll (05-09-2001) 
         
	
            | Kommentar Fra : Anders Holbøll | 
  Dato :  05-09-01 14:15 |  
  |  
 
            Jakob Munck wrote:
 > Anders Holbøll wrote:
 > > Jakob Munck wrote:
 > > >
 > > > koden her skriver chatlinierne ud sådan at de sidst indskrevne 
 > > > kommer nederst. Jeg vil gerne vende det, så de sidst indskrevne
 > > > kommer øverst.
 > >
 > > Prøv:
 > > messagelist = Application("messagelist")
 > > messagelist = "<b>" & Now & "</b>: " & _
 > >               Server.HtmlEncode(message) & "<br>" & messagelist
 > > messagelist = join(split(messagelist, "<br>", 30), "<br>")
 > > Application("messagelist") = messagelist
 > 
 > Der kom - tilsyneladende - bare en masse nye linier med denne kode
 > i den sidste indtastning.
 Jeg forstår ikke hvad du mener. Men man kunne angribe problemet fra en
 anden vingel og så samtidig optimerer lidt. Det sted, du markerede i
 først post, udskifter du med:
 messagelist = Application("messagelist")
 If (messagelist = "") Then
   messagelist = Replace(Space(29), " ", "<br>")
 End If
 messagelist = "<b>" & Now & "</b>: " & _
               Server.HtmlEncode(message) & "<br>" & messagelist
 messagelist = Left(messagelist, InStrRev(messagelist, "<br>") - 1)
 Application("messagelist") = messagelist
 (Gider du ikke at prøve at citere lidt bedre?
 http://www.usenet.dk/netikette/quote.html )
 -- 
 Anders
            
              |   |   
            
        
 
            
         
             Jakob Munck (05-09-2001) 
         
	
            | Kommentar Fra : Jakob Munck | 
  Dato :  05-09-01 15:46 |  
  |   
            Hej Anders
 
 tak for forslagene. Det sidste forslag får "chatten" vil at virke præcis som
 den gjorde fra starten, nemlig sådan at den sidst indskrevne linie vises
 neder, og ikke øverst, som det skal, hvis chatten skal anvendes i praksis
 (efter min mening).
 
 Men jeg er imponeret over, at du overhovedet kan finde ud af denne kode,
 for - for mig - er den temmelig uforståelig.
 
 Hvis det lykkes for dig at finde ud af, hvorda udskrivningen vender, så
 sidst indskrevne linie vises øverst, så kan du måske også finde ud af, hvor
 i koden man skal indsætte navnet på den person, der skriver indlægget. Det
 er der nemlig ikke taget højde for i koden som den er nu.
 
 v.h.
 Jakob Munck
 
 
  
            
             |   |   
            
        
 
            
         
              Anders Holbøll (05-09-2001) 
         
	
            | Kommentar Fra : Anders Holbøll | 
  Dato :  05-09-01 16:32 |  
  |   
            Jakob Munck wrote:
 > 
 > Det sidste forslag får "chatten" vil at virke præcis som den gjorde
 > fra starten, nemlig sådan at den sidst indskrevne linie vises neder,
 > og ikke øverst, som det skal, hvis chatten skal anvendes i praksis
 > (efter min mening).
 
 Det forstår jeg ikke. Nu har jeg oven i købet testet det. Er du (helt)
 sikker på at nyeste beskeder vises nederst?
 
 > for mig [er koden] temmelig uforståelig.
 
 Jamen, så er her jo en glimrende lejlighed til at blive bedre til asp.
 Prøv at læse koden igennem og forstå den. Hvis du har konkrete
 problemer, så prøv at stil dem her i gruppen, så er der sikkert nogen
 der vil hjælpe dig.
 
 > hvor i koden [skal man] indsætte navnet på den person, der skriver
 > indlægget. Det er der nemlig ikke taget højde for i koden som den
 > er nu.
 
 Lige nu er der jo slet ikke nogen navne på brugene i chatten. Men der
 skal jo laves et velkomstbillede, hvor man kan taste sit navn ind i en
 formular. Dette navn skal så checkes, for om det er lovlig (det ikke er
 for langt, ikke allerede er taget, osv.) og der på gemmes dels i en
 session variabel og del i en liste i en application variabel (så man kan
 se hvem der er i chatten og kan checke at nye brugere ikke også tager
 navnet). Så skal der i linien, hvor en ny besked tilføjes til
 messagelist indføjes navnet fra session-variablen.
 
 -- 
 Anders
  
            
             |   |   
            
        
 
            
         
               Jakob Munck (05-09-2001) 
         
	
            | Kommentar Fra : Jakob Munck | 
  Dato :  05-09-01 19:45 |  
  |   
            Ja, jeg er helt sikker på at koden skriver den sidst indskrevne linie ud
 nederst, altså modsat det ønskede. Den kode jeg taler om er den - efter dine
 råd - reviderede, og den er for klarheds skyld indsat neder i denne mail.
 Jeg forstår ikke, hvis den skulle udskrive anderledes på din server end på
 min (!!), det lyder temmelig usandsynligt.
 
 Jeg vil være MEGET glad, hvis jeg kan bruge denne - for mig - temmelig svære
 kode som udviklingsopgave, ikke kun fordi jeg skal bruge koden i praksis,
 men også fordi den, som du siger, er rigtig god for mig at lære af. Hvis
 du - og andre kloge - vil hjælpe med svar, så vil jeg meget gerne arbejde
 videre med koden.
 
 Men i første omgang er problemet altså det, at få den til at skrive ud
 omvendt af hvordan den gør nu.
 
 v.h.
 Jakob
 
 -----------------------------------------------
 Her er koden:
 
 <%
 ' messagelist = liste over tidspunkt og besked for alle indsatte linier i
 chatten.
 
 Dim func, message
 randomize
 message = Left(Trim(Request("message")), 100)
 func = LCase(Trim(Request("func")))
 
 If (func = "") Then
   Response.Write "<frameset rows=""*,100"">" & vbCrLf
   Response.Write " <frame name=""messageframe""
 src=""chat.asp?func=message"">" & vbCrLf
   Response.Write " <frame name=""formframe"" src=""chat.asp?func=form"">" &
 vbCrLf
   Response.Write "</frameset>" & vbCrLf
 ElseIf (func = "message") Then
   If Not (message = "") Then
     Application.Lock
 messagelist = Application("messagelist")
 If (messagelist = "") Then
   messagelist = Replace(Space(29), " ", "<br>")
 End If
 messagelist = "<b>" & Now & "</b>: " & _
               Server.HtmlEncode(message) & "<br>" & messagelist
 messagelist = Left(messagelist, InStrRev(messagelist, "<br>") - 1)
 Application("messagelist") = messagelist
     Application.UnLock
   Else
     messagelist = Application("messagelist")
   End If
   Response.Write "<META HTTP-EQUIV=""Refresh"" CONTENT=""15;
 URL=chat.asp?func=message&rnd=" & ran & """>" & vbCrLf
   Response.Write "<body bgcolor=#ffffff>" & vbCrLf
   Response.Write messagelist & vbCrLf
   Response.Write "</body>" & vbCrLf
 ElseIf (func = "form") Then
   Response.Write "<body bgcolor=#ffffff>" & vbCrLf
   Response.Write " <form name=""chatform"" action=""chat.asp""
 target=""messageframe""
 onSubmit=""document.chatform.message.value=document.chatform.dummymessage.va
 lue;document.chatform.dummymessage.value='';document.chatform.dummymessage.f
 ocus();"">" & vbCrLf
   Response.Write "  <input type=hidden name=""func"" value=""message"">" &
 vbCrLf
   Response.Write "  <input type=hidden name=""message"" value="""">" &
 vbCrLf
   Response.Write "  <input type=text name=""dummymessage"" value=""""
 maxlength=100>" & vbCrLf
   Response.Write "  <input type=submit value=""Send"">" & vbCrLf
   Response.Write " </form>" & vbCrLf
   Response.Write "</body>" & vbCrLf
 Else
   Response.Redirect "/"
 End If
 
 %>
 
 
  
            
             |   |   
            
        
 
            
         
                Anders Holbøll (07-09-2001) 
         
	
            | Kommentar Fra : Anders Holbøll | 
  Dato :  07-09-01 12:35 |  
  |   
            Jakob Munck wrote:
 > 
 > Ja, jeg er helt sikker på at koden skriver den sidst indskrevne 
 > linie ud nederst, altså modsat det ønskede. Den kode jeg taler 
 > om er den - efter dine råd - reviderede, og den er for klarheds 
 > skyld indsat neder i denne mail.
 
 Jeg ville nok checke en ekstra gang, at den kode du har i din editor, er
 den samme som den du ser på med din browser. Det er sket får, at man har
 siddet og rettet i en backup og derfor ikke ser ændriger i browseren
 eller at iis har cachet koden.
 
 -- 
 Anders
  
            
             |   |   
            
        
 
            
         
               Jakob Munck (06-09-2001) 
         
	
            | Kommentar Fra : Jakob Munck | 
  Dato :  06-09-01 07:46 |  
  |   
            > Lige nu er der jo slet ikke nogen navne på brugene i chatten. Men der
 > skal jo laves et velkomstbillede, hvor man kan taste sit navn ind i en
 > formular. Dette navn skal så checkes, for om det er lovlig (det ikke er
 > for langt, ikke allerede er taget, osv.) og der på gemmes dels i en
 > session variabel og del i en liste i en application variabel (så man kan
 > se hvem der er i chatten og kan checke at nye brugere ikke også tager
 > navnet). Så skal der i linien, hvor en ny besked tilføjes til
 > messagelist indføjes navnet fra session-variablen.
 >
 
 Jeg skal lige sige, at jeg rent faktisk allerede har en fungerende
 databasebaseret chat, hvor alt dette fungerer, men den kode vi her
 diskuterer vil jeg indføre i min eksisterende chat for at lave
 opdateringsblinkene mindre. Når man bruger en Access-database er disse
 opdateringsblink, som kommer hvert 10. sekund af ca. 1 sekunds varighed, og
 det er lang tid og derfor generende. Hvis man i stedet lavet en
 Applications-objekt-baseret chat, så er disse blink kortere og mindre
 generende.
 
 Med herværende kode, som er en særlig optimeret form for Application-objekt
 chat er blinkene så små og hurtige som de overhovedet kan blive (tror jeg),
 og derfor vil jeg indføre de centrale dele af herværende kode i min
 nuværende chat - altså hvis herværende kode kommer til at virke med sidste
 linie øverst og med brugerens navn (som i forvejen ligger i en
 sessionvariabel) ud for hvert indlæg.
 
 Men, som sagt, jeg forstår ikke koden.
 
 v.h.
 Jakob
 
 
 
  
            
             |   |   
            
        
 
            
         
                Anders Holbøll (07-09-2001) 
         
	
            | Kommentar Fra : Anders Holbøll | 
  Dato :  07-09-01 12:38 |  
  |   
            Jakob Munck wrote:
 > 
 > [brug af databaser til chat er langsomt]
 > Med herværende kode, som er en særlig optimeret form for 
 > Application-objekt chat er blinkene så små og hurtige som
 > de overhovedet kan blive (tror jeg),
 
 Du kan naturligvis gøre "blinkene" kortere ved bruge af dhtml. Det er jo
 det flere af de "store chats" gør.
 
 -- 
 Anders
  
            
             |   |   
            
        
 
            
         
                 Jakob Munck (07-09-2001) 
         
	
            | Kommentar Fra : Jakob Munck | 
  Dato :  07-09-01 14:15 |  
  |   
            Jeg har fundet noget ny kode, der - i princippet - er ligesom den jeg her
 lagde frem, men den udskriver bare omvendt, altså sådan som jeg vil have
 det. Den er jeg ved at gøre i stand.
 
 >
 > Du kan naturligvis gøre "blinkene" kortere ved bruge af dhtml. Det er jo
 > det flere af de "store chats" gør.
 >
 
 Hvordan kan man bruge dhtml til at gøre blinkene kortere, det forstår jeg
 ikke ?
 
 
 v.h.
 Jakob Munck
 
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |