pepss skrev:
> ja jeg arbejder jo stadig på et "besked om post system"
> jeg har fået bikset denne kode sammen:
Jeg har kommenteret lidt herunder...
> arrbrevsystem = Split(application("brevsystem"),",")
Det ser ud til at application("brevsystem") er en tekststreng og
indeholder bruger-id adskilt af kommaer.
arrbrevsystem en array med bruger-id.
> For t = LBound(arrbrevsystem) to UBound(arrbrevsystem)
Vi løber alle bruger-id igennem.
Lad os antage at der er flere brugere og den første i listen over
brugere der har modtaget post er den aktuelle bruger...
> if arrbrevsystem(t) = Session("id") then
.... altså antog vi at ovenstående er sandt for det først t - så vi kom
ind i If-sætningen.
> arrbrevsystem(t) = ""
> Response.Write "<script language=""Javascript"">"
> Response.Write "alert(""Du har et ulæst brev i din indbakke"");"
> Response.Write "</script>"
"Slet" en af pladserne i arrayet og giv brugeren besked om at han har post.
Læg mærke til at du ikke sletter i Application-variablen, men kun i den
midlertidige array arrbrevsystem.
> else
Og for de brugere der ellers er i "har fået post"-listen gøres:
> application("brevsystem") = arrbrevsystem(t)
Vi overskriver hele listen af brugere, der har fået post, men
bruger-id'et på en t'te plads i arrayet.
Det er her noget går galt, for når vi løber igennem med det sidste t, så
bliver Application-variablen overskrevet med hans bruger-id (det er jo
det, der ligger i arrbrevsystem(t).
Alle de andre, der lå i "har fået post"-listen er nu væk!
> end if
> next
>
> hvor jeg så havde den idé at line arrbrevsystem(t) = "" ville slette posten
> men det gør den så ikke...
> mit spørgsmål er så hvordan sletter man en post fra et arrays?
Jeg håber du kan læse ud af det jeg har skrevet ovenfor, hvorfor det går
galt. Hvis ikke, så har jeg lavet et eksempel herunder:
Vi har som udgangspunkt Application-variablen:
Application("harPostListe")
som kunne indeholde "ib,bo,hans,kurt"
Bruger-id ligger i Session("id") - i dette tilfælde indeholder den "bo"
harPostArray = Split(Application("harPostListe"), ",")
' harPostArray = ("ib", "bo", "hans", "kurt")
harStadigPostListe = ""
' liste over de bruger-id, vi stadig skal huske
For i = LBound(harPostArray) To UBound(harPostArray)
' Vi løber alle brugere, der har post, igennem
If harPostArray(i) = Session("id") Then
' Den aktuelle bruger har post
' I dette tilfælde når harPostArray(i) = "bo"
Response.Write "Du har post..."
Else
' Det er ikke den aktuelle bruger, så husk brugeren
' indtil han selv logger ind
' I dette tilfælde når harPostArray(i) <> "bo"
If harStadigPostListe = "" Then
harStadigPostListe = harPostArray(i)
Else
harStadigPostListe = harStadigPostListe & "," & harPostArray(i)
End If
' Vi husker dette bruger-id
End If
Next
Application("harPostListe") = harStadigPostListe
' harStadigPostListe indeholder nu alle bruger-id som harPostArray
' oprindeligt gjorde - undtagen hvis den aktuelle bruger var en
' af dem, så fik han en besked og kom ikke med i harStadigPostListe.
' I dette tilfælde indeholder den "ib,hans,kurt".
Håber det gav lidt belysning af problemet,
Torben