Avatar billede psyclown Nybegynder
05. maj 2003 - 19:23 Der er 44 kommentarer og
1 løsning

Replace problem

Jeg har lavet en function som skal replace bogstaver fra a-å i en overskift med billede-bogstaver, men hvis jeg prøver at køre scriptet timer den bare ud.
Jeg kan ikke rigtigt forstå at sådan en function, kan kræve så meget, det kan self. også være at jeg kan lavet noget galt.

Håber at der er en der kan hjælpe mig med at finde fejlen/fejene eller måske kan komme med en bedre måde at lave det på.
Her er koden til det hele:

------- const_alfa.asp ------
<%
    Const strAlfaA = "images/alfabet/a.gif|6|5"
    Const strAlfaB = "images/alfabet/b.gif|6|5"
    Const strAlfaC = "images/alfabet/c.gif|6|5"
    Const strAlfaD = "images/alfabet/d.gif|6|5"
    Const strAlfaE = "images/alfabet/e.gif|6|5"
    Const strAlfaF = "images/alfabet/f.gif|6|5"
    Const strAlfaG = "images/alfabet/g.gif|6|5"
    Const strAlfaH = "images/alfabet/h.gif|6|5"
    Const strAlfaI = "images/alfabet/i.gif|6|5"
    Const strAlfaJ = "images/alfabet/j.gif|6|5"
    Const strAlfaK = "images/alfabet/k.gif|6|5"
    Const strAlfaL = "images/alfabet/l.gif|6|5"
    Const strAlfaM = "images/alfabet/m.gif|6|5"
    Const strAlfaN = "images/alfabet/n.gif|6|5"
    Const strAlfaO = "images/alfabet/o.gif|6|5"
    Const strAlfaP = "images/alfabet/p.gif|6|5"
    Const strAlfaQ = "images/alfabet/q.gif|6|5"
    Const strAlfaR = "images/alfabet/r.gif|6|5"
    Const strAlfaS = "images/alfabet/s.gif|6|5"
    Const strAlfaT = "images/alfabet/t.gif|6|5"
    Const strAlfaU = "images/alfabet/u.gif|6|5"
    Const strAlfaV = "images/alfabet/v.gif|6|5"
    Const strAlfaX = "images/alfabet/x.gif|6|5"
    Const strAlfaY = "images/alfabet/y.gif|6|5"
    Const strAlfaZ = "images/alfabet/z.gif|6|5"
    Const strAlfaAE = "images/alfabet/ae.gif|7|5"
    Const strAlfaOE = "images/alfabet/oe.gif|6|5"
    Const strAlfaSpace = "images/alfabet/space.gif|2|5"
    Const strAlfaPileV = "images/alfabet/pile_v.gif|7|5"
    Const strAlfaPileH = "images/alfabet/pile_h.gif|7|5"

    Function getCurrentAlfa(fAlfaName,fAltText,fOtherTags)
        If fAlfaName = "" Then Exit Function
        If fOtherTags <> "" Then fOtherTags = " " & fOtherTags
        If Instr(fAlfaName,"http://") > 0 Then strTempImageUrl = "" Else strTempImageUrl = strImageUrl
        tmpAlfa = split(fAlfaName,"|")
        If tmpAlfa(1) <> "" Then fWidth = " width=""" & tmpAlfa(1) & """"
        If tmpAlfa(2) <> "" Then fHeight = " height=""" & tmpAlfa(2) & """"
        getCurrentAlfa = "<img src=""" & strTempImageUrl & tmpAlfa(0) & """" & fWidth & fHeight & " border=""0"" alt=""" & fAltText & """ title=""" & fAltText & """" & fOtherTags & ">"
    End Function
%>

------- functions.asp ------
<%
    Function Alfabet(Bogstav)
        Bogstav = replace(Bogstav, "a", getCurrentAlfa(strAlfaA,"","align=""middle"""))
        Bogstav = replace(Bogstav, "A", getCurrentAlfa(strAlfaA,"","align=""middle"""))
        Bogstav = replace(Bogstav, "b", getCurrentAlfa(strAlfaB,"","align=""middle"""))
        Bogstav = replace(Bogstav, "B", getCurrentAlfa(strAlfaB,"","align=""middle"""))
        Bogstav = replace(Bogstav, "c", getCurrentAlfa(strAlfaC,"","align=""middle"""))
        Bogstav = replace(Bogstav, "C", getCurrentAlfa(strAlfaC,"","align=""middle"""))
        Bogstav = replace(Bogstav, "d", getCurrentAlfa(strAlfaD,"","align=""middle"""))
        Bogstav = replace(Bogstav, "D", getCurrentAlfa(strAlfaD,"","align=""middle"""))
        Bogstav = replace(Bogstav, "e", getCurrentAlfa(strAlfaE,"","align=""middle"""))
        Bogstav = replace(Bogstav, "E", getCurrentAlfa(strAlfaE,"","align=""middle"""))
        Bogstav = replace(Bogstav, "f", getCurrentAlfa(strAlfaF,"","align=""middle"""))
        Bogstav = replace(Bogstav, "F", getCurrentAlfa(strAlfaF,"","align=""middle"""))
        Bogstav = replace(Bogstav, "g", getCurrentAlfa(strAlfaG,"","align=""middle"""))
        Bogstav = replace(Bogstav, "G", getCurrentAlfa(strAlfaG,"","align=""middle"""))
        Bogstav = replace(Bogstav, "h", getCurrentAlfa(strAlfaH,"","align=""middle"""))
        Bogstav = replace(Bogstav, "H", getCurrentAlfa(strAlfaH,"","align=""middle"""))
        Bogstav = replace(Bogstav, "i", getCurrentAlfa(strAlfaI,"","align=""middle"""))
        Bogstav = replace(Bogstav, "i", getCurrentAlfa(strAlfaI,"","align=""middle"""))
        Bogstav = replace(Bogstav, "j", getCurrentAlfa(strAlfaJ,"","align=""middle"""))
        Bogstav = replace(Bogstav, "J", getCurrentAlfa(strAlfaJ,"","align=""middle"""))
        Bogstav = replace(Bogstav, "k", getCurrentAlfa(strAlfaK,"","align=""middle"""))
        Bogstav = replace(Bogstav, "K", getCurrentAlfa(strAlfaK,"","align=""middle"""))
        Bogstav = replace(Bogstav, "l", getCurrentAlfa(strAlfaL,"","align=""middle"""))
        Bogstav = replace(Bogstav, "L", getCurrentAlfa(strAlfaL,"","align=""middle"""))
        Bogstav = replace(Bogstav, "m", getCurrentAlfa(strAlfaM,"","align=""middle"""))
        Bogstav = replace(Bogstav, "M", getCurrentAlfa(strAlfaM,"","align=""middle"""))
        Bogstav = replace(Bogstav, "n", getCurrentAlfa(strAlfaN,"","align=""middle"""))
        Bogstav = replace(Bogstav, "N", getCurrentAlfa(strAlfaN,"","align=""middle"""))
        Bogstav = replace(Bogstav, "o", getCurrentAlfa(strAlfaO,"","align=""middle"""))
        Bogstav = replace(Bogstav, "O", getCurrentAlfa(strAlfaO,"","align=""middle"""))
        Bogstav = replace(Bogstav, "p", getCurrentAlfa(strAlfaP,"","align=""middle"""))
        Bogstav = replace(Bogstav, "P", getCurrentAlfa(strAlfaP,"","align=""middle"""))
        Bogstav = replace(Bogstav, "r", getCurrentAlfa(strAlfaR,"","align=""middle"""))
        Bogstav = replace(Bogstav, "R", getCurrentAlfa(strAlfaR,"","align=""middle"""))
        Bogstav = replace(Bogstav, "s", getCurrentAlfa(strAlfaS,"","align=""middle"""))
        Bogstav = replace(Bogstav, "S", getCurrentAlfa(strAlfaS,"","align=""middle"""))
        Bogstav = replace(Bogstav, "t", getCurrentAlfa(strAlfaT,"","align=""middle"""))
        Bogstav = replace(Bogstav, "T", getCurrentAlfa(strAlfaT,"","align=""middle"""))
        Bogstav = replace(Bogstav, "u", getCurrentAlfa(strAlfaU,"","align=""middle"""))
        Bogstav = replace(Bogstav, "U", getCurrentAlfa(strAlfaU,"","align=""middle"""))
        Bogstav = replace(Bogstav, "v", getCurrentAlfa(strAlfaV,"","align=""middle"""))
        Bogstav = replace(Bogstav, "V", getCurrentAlfa(strAlfaV,"","align=""middle"""))
        Bogstav = replace(Bogstav, "x", getCurrentAlfa(strAlfaX,"","align=""middle"""))
        Bogstav = replace(Bogstav, "X", getCurrentAlfa(strAlfaX,"","align=""middle"""))
        Bogstav = replace(Bogstav, "y", getCurrentAlfa(strAlfaY,"","align=""middle"""))
        Bogstav = replace(Bogstav, "Y", getCurrentAlfa(strAlfaY,"","align=""middle"""))
        Bogstav = replace(Bogstav, "z", getCurrentAlfa(strAlfaZ,"","align=""middle"""))
        Bogstav = replace(Bogstav, "Z", getCurrentAlfa(strAlfaZ,"","align=""middle"""))
        Bogstav = replace(Bogstav, "&#230;", getCurrentAlfa(strAlfaAE,"","align=""middle"""))
        Bogstav = replace(Bogstav, "&#198;", getCurrentAlfa(strAlfaAE,"","align=""middle"""))
        Bogstav = replace(Bogstav, "&#248;", getCurrentAlfa(strAlfaOE,"","align=""middle"""))
        Bogstav = replace(Bogstav, "&#216;", getCurrentAlfa(strAlfaOE,"","align=""middle"""))
        Bogstav = replace(Bogstav, ">>", getCurrentAlfa(strAlfaPileV,"","align=""middle"""))
        Bogstav = replace(Bogstav, "<<", getCurrentAlfa(strAlfaPileH,"","align=""middle"""))
        Bogstav = replace(Bogstav, "&nbsp;", getCurrentAlfa(strAlfaSpace,"","align=""middle"""))
        Alfabet = Bogstav
    End Function
%>
------- Eks. på hvordan jeg bruger det ------
Overskrift = ">> nyheder"
Response.Write alfabet(Overskrift)

På forhånd tak!
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 19:26 #1
Ja, du erstatter alle "a" med en lang streng, og den indeholder så en masse
andre bogstaver som også bliver erstattet. Det bliver en laaang streng
til sidst. Lad os se hvad vi kan gør ved det..
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 19:30 #2
overskrift=""
for i=1 to len(bogstav)
  b = mid(bogstav,1,1)
  select case b
    case "a","A"
        overskrif = overskrift & getCurrentAlfa(strAlfaA,"","align=""middle""")
    .........
  end select
next i


HELT utestet
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 19:31 #3
Nok:

  b = mid(bogstav,i,i)
Avatar billede psyclown Nybegynder
05. maj 2003 - 19:31 #4
jeg tænkte også over det inden jeg lavede det, at det nok skulle blive noget sjusk og jeg så også klogere da jeg prøvede det af :)
Avatar billede no_doubt Nybegynder
05. maj 2003 - 19:32 #5
kan vi se det i action ?
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 19:32 #6
Altså....:
b = mid(bogstav,i,1)
Avatar billede psyclown Nybegynder
05. maj 2003 - 19:35 #7
www.cichlide-net.dk <-- der kan i se det i action
Avatar billede psyclown Nybegynder
05. maj 2003 - 19:37 #8
det er så alle de overskrifter der skal bruges med den funktion der
Avatar billede psyclown Nybegynder
05. maj 2003 - 19:39 #9
erikjacobsen >> der er flere steder jeg skal bruge den function, så hvis jeg skal bruge den løkke der, så skal jeg jo skrive det hele hvergang jeg skal bruge det....
Avatar billede psyclown Nybegynder
05. maj 2003 - 19:41 #10
erikjacobsen >> den løkke der er bare en afstatning for den funktion hvor jeg replacer alle bogstaverne ik ??
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 19:43 #11
Næh, du har en fin funktion allerede. Det skal bare derind i stedet
for de linier du har - kommer til at fylde ca. det halve
Avatar billede psyclown Nybegynder
05. maj 2003 - 19:46 #12
aahhh :D
Avatar billede psyclown Nybegynder
05. maj 2003 - 19:57 #13
Function Alfabet(Bogstav)
        Overskrift = ""
        For i = 1 To len(Bogstav)
            b = mid(Bogstav,i,1)
            Select Case b
                Case "a","A"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaA,"","align=""middle""")
                Case "b","B"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaB,"","align=""middle""")
                Case "c","C"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaC,"","align=""middle""")
                Case "d","D"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaD,"","align=""middle""")
                Case "e","E"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaE,"","align=""middle""")
                Case "f","F"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaF,"","align=""middle""")
                Case "g","G"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaG,"","align=""middle""")
                Case "h","H"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaH,"","align=""middle""")
                Case "i","I"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaI,"","align=""middle""")
                Case "j","J"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaJ,"","align=""middle""")
                Case "k","K"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaK,"","align=""middle""")
                Case "l","L"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaL,"","align=""middle""")
                Case "m","M"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaM,"","align=""middle""")
                Case "n","N"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaN,"","align=""middle""")
                Case "o","O"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaO,"","align=""middle""")
                Case "p","P"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaP,"","align=""middle""")
                Case "r","R"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaR,"","align=""middle""")
                Case "s","S"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaS,"","align=""middle""")
                Case "t","T"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaT,"","align=""middle""")
                Case "u","U"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaU,"","align=""middle""")
                Case "v","V"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaV,"","align=""middle""")
                Case "x","X"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaX,"","align=""middle""")
                Case "y","Y"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaY,"","align=""middle""")
                Case "z","Z"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaZ,"","align=""middle""")
                Case "&#230;","&#198;"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaAE,"","align=""middle""")
                Case "&#248;","&#216;"
                    Overskrift = Overskrift & getCurrentAlfa(strAlfaOE,"","align=""middle""")
            End Select
        Next i
    End Function

Sådan der ??
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 20:03 #14
og så

  alfabet = overskrift
Avatar billede psyclown Nybegynder
05. maj 2003 - 20:05 #15
okay, så for jeg følgende fejl:

Expected end of statement

functions.asp, line 66

Next i
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 20:12 #16
hvad skriver du (spring bare de mellemliggende linier over)
Avatar billede psyclown Nybegynder
05. maj 2003 - 20:14 #17
jeg skriver det ud, lissom jeg gjorde med det anden script...
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 20:16 #18
Så må du hellere smide koden ind her ... :)
Avatar billede psyclown Nybegynder
05. maj 2003 - 20:18 #19
Text = ">> nyheder"

Response.Write alfabet(Text)
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 20:31 #20
Det hjælper ikke noget - du har en simpel syntaksfejl.
Hele koden, eller et link til den
Avatar billede psyclown Nybegynder
05. maj 2003 - 20:34 #21
hele koden til at det script jeg lige har fixet eller koden koden hvor det bliver udskrevet ???
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 20:35 #22
Der hvor du har syntaksfejlen
Avatar billede psyclown Nybegynder
05. maj 2003 - 20:38 #23
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 20:44 #24
Der står ikke den kode du fik af mig
Avatar billede psyclown Nybegynder
05. maj 2003 - 20:59 #25
sry, havde ikke lige opdateret den fil jeg havde liggende localt...nu skulle det gerne være der
Avatar billede psyclown Nybegynder
05. maj 2003 - 21:22 #26
men altså der er heller ikke nogen grund til at du kigger på den side, koden du skulle have står lige oven over det her..
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 21:37 #27
Du skal i hvert fald ikke have
  Alfabet = Bogstav
men
  Alfabet = overskrift

(overskift er nok et dårligt navn kan jeg se nu)

Og så kan jeg også se at min børnelærdom om Basic er ved
at fortabe sig. Det hedder ikke
  next i
men bare
  next
Avatar billede psyclown Nybegynder
05. maj 2003 - 21:42 #28
det virker nu fint nok:
http://www.cichlide-net.dk/index.asp

det er det der står ovenover "Blah blah blah overskriften"

billederne er der, men den viser dem ikke ???
det forstår jeg intet af...
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 21:48 #29
Det er vist jpg-er og ikke gif-er
Avatar billede psyclown Nybegynder
05. maj 2003 - 21:54 #30
jeg har lavet dem til .gif, havde bare lige glemt at ligge dem op :D
Avatar billede psyclown Nybegynder
05. maj 2003 - 21:56 #31
nå, men du skal også have nogle point jo...så hvis du bare lige vil svarer, så kan vi få det ordnet
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 21:59 #32
Nå ja. ;)
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 21:59 #33
Men det er godt nok nogle små bogstavet til min skærm og mine øjne.
Avatar billede psyclown Nybegynder
05. maj 2003 - 22:01 #34
hmmm, hvad opløsning køre du i, for størrelsen er da fin i 1024*768..

Men ellers tak for hjælpen
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 22:10 #35
1280 x etellerandet
Avatar billede psyclown Nybegynder
05. maj 2003 - 22:14 #36
kan du lige sådan hurtigt koderne til ">" og "<", for det ser ikke ud til at den vil replace, når man bare skrive ">>" og "<<" som det den skal replace..
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 22:21 #37
Øh, mener du &lt; for < og &gt; for >  - jeg kan faktisk ikke lige se om det er de tegn der vises ... :)
Avatar billede psyclown Nybegynder
05. maj 2003 - 22:23 #38
det er rigtigt nok, men den vil ikke replace ">" og "<"..det forstår jeg ikke..
Avatar billede _darkstar_ Nybegynder
05. maj 2003 - 22:27 #39
...det kan altså gøres væsentligt pænere hvis man putter det hele ned i nogle arrays...
Avatar billede psyclown Nybegynder
05. maj 2003 - 22:29 #40
hovedsagen er vel at det virker og at man kan finde rundt i koden ?
Avatar billede _darkstar_ Nybegynder
05. maj 2003 - 23:19 #41
Det kommer så an på hvem man er og hvad det skulle bruges til.

Jeg synes at den slags kode som I har skrevet ovenfor er:

* Svær at vedligeholde fordi at man skal taste en hulens masse gange for at ændre noget.
* Svær at fejlsøge i - der kan opstå totalt mærkelige fejl.

generelt synes jeg ikke at det er særligt god kodestil.
Avatar billede _darkstar_ Nybegynder
05. maj 2003 - 23:20 #42
...og iøvrigt kan man reducere kodens størrelse en del ved at bruge arrays. En gammel lov siger at antallet af fejl er proportional med kodens størrelse - dét er et argument i sig selv.
Avatar billede psyclown Nybegynder
07. maj 2003 - 15:19 #43
du er da velkommen til at komme med et eksempel på hvordan man ellers kan lave det..
Avatar billede _darkstar_ Nybegynder
07. maj 2003 - 17:57 #44
Spørgsmålet er lukket :)
Avatar billede psyclown Nybegynder
07. maj 2003 - 20:15 #45
skal jeg starte et nyt ??
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester