Avatar billede want2learn Nybegynder
18. maj 2006 - 17:26 Der er 14 kommentarer og
1 løsning

hvis SearchTeam indholder en ting så er TeamYear = noget

Jeg skal ikke vide placeringen af noget i et ord, med evt indexof, men f.eks.
Hvis SearchTeam Indholder:      Så er TeamYear:
"ode"                          "6"
"piger"                        "12"
"drenge"                        "12"
"uni"                          "14"
"nior"                          "18"

altså hvis SearchTeam er = Junior så vil TeamYear være = 14 fordi "uni" indgår i ordet "Junior" men hvis SearchTeam = Senior så vil TeamYear denne gang være = 18 fordi "nior" indgår i ordet "Senior".

Nogle der kan hjælpe med noget som der kan kigge på SearchTeam om det indholder noget af flg. og hvis det indholder "uni" så sætter den TeamYear = 14 (SearchTeam vil ikke kunne indholder flere af tingene det vil kun være en af tingene så den kan kun sætte TeamYear = et tal og ikke flere).
Avatar billede nielle Nybegynder
18. maj 2006 - 18:24 #1
Noget i denne stil:

    Function noget(ByVal SearchTeam As String) As Integer
        If SearchTeam.Contains("ode") Then
            noget = 6
        ElseIf SearchTeam.Contains("piger") Or SearchTeam.Contains("drenge") Then
            noget = 12
        ElseIf SearchTeam.Contains("uni") Then
            noget = 14
        ElseIf SearchTeam.Contains("nior") Then
            noget = 18
        Else
            noget = -1
        End If
    End Function
Avatar billede want2learn Nybegynder
18. maj 2006 - 20:13 #2
Hvis nu jeg siger at jeg ikke kun har 5 ord som vist men 21 kan det så laves lettere !?

eller sætter jeg bare Or ind hvis nogle af tallene går igen !?
Avatar billede nielle Nybegynder
18. maj 2006 - 20:18 #3
Du kan bare bruge Or på samme måde som det er gjort for "piger" og "drenge". Men man kan vel ikke sige at det nødvendigvis er lettere.
Avatar billede nielle Nybegynder
18. maj 2006 - 20:29 #4
Du kan også gøre det på denne måde:

    Function noget(ByVal SearchTeam As String) As Integer
        Dim opslag As New Dictionary(Of String, Integer)()

        opslag.Add("ode", 6)
        opslag.Add("piger", 12)
        opslag.Add("drenge", 12)
        opslag.Add("uni", 14)
        opslag.Add("nior", 18)

        For Each key As String In opslag.Keys
            If SearchTeam.Contains(key) Then Return opslag(key)
        Next

        Return -1
    End Function

- men dette kræver at du briger 2.0 Net og at du har en Imports i toppen:

Imports System.Collections.Generic
Avatar billede want2learn Nybegynder
18. maj 2006 - 22:12 #5
Jeg bruger 2.0 og kan kører det ved min host.

spm. kan jeg ikke gøre flg.

...
..
opslag.Aadd("ode", 6)
opslag.Add("piger","drenge", 12)

eller !?
Avatar billede want2learn Nybegynder
18. maj 2006 - 22:16 #6
samt hvis jeg skal bruge det i en Sub hvor skal jeg så placerer det !? er ny til .net

Protected Sub ManipulateString(ByVal Output As String)
.......code......
End Sub
Avatar billede nielle Nybegynder
18. maj 2006 - 22:29 #7
18/05-2006 22:12:08> Nej

18/05-2006 22:16:53> Hvorfor have det i en Sub? Du kan kalde din funktion på denne måde:

TeamYear = noget("Senior")
Avatar billede want2learn Nybegynder
18. maj 2006 - 22:53 #8
fordi det er i min sub jeg finder mine ord..
Avatar billede nielle Nybegynder
18. maj 2006 - 23:00 #9
Nå du siger at du finder dine ord, så gætter jeg på at det er "Senior" du finder - og ikke "nior"? De sidste er vel altid hardkodet (går jeg ud fra siden at de allerede nu ved at der er 21)?

I såfald er der intet i vejen for at du kan kalde funktionen noget() inde fra din sub:

    Sub DinSub()
        Dim SearchTeam As String = "Senior"
        Dim TeamYear = noget(SearchTeam)
    End Sub

    Function noget(ByVal SearchTeam As String) As Integer
        Dim opslag As New Dictionary(Of String, Integer)()

        opslag.Add("ode", 6)
        opslag.Add("piger", 12)
        opslag.Add("drenge", 12)
        opslag.Add("uni", 14)
        opslag.Add("nior", 18)

        For Each key As String In opslag.Keys
            If SearchTeam.Contains(key) Then Return opslag(key)
        Next

        Return -1
    End Function
Avatar billede nielle Nybegynder
18. maj 2006 - 23:06 #10
Men hvis du insistere på at alt sammen skal være inden for i den samme sub, kan dette selvfølgeligt gøres:

    Sub DinSub()
        Dim SearchTeam As String = "Senior"
        Dim TeamYear As Integer = -1

        Dim opslag As New Dictionary(Of String, Integer)()
        opslag.Add("ode", 6)
        opslag.Add("piger", 12)
        opslag.Add("drenge", 12)
        opslag.Add("uni", 14)
        opslag.Add("nior", 18)

        For Each key As String In opslag.Keys
            If SearchTeam.Contains(key) Then
                TeamYear = opslag(key)
                Exit For
            End If
        Next
    End Sub

Personligt er jeg dog ikke i tvivl om hvad jeg synes er pænest :^)
Avatar billede want2learn Nybegynder
18. maj 2006 - 23:57 #11
tror jeg vil gå efter dit første eks.
Kommentar: nielle
18/05-2006 23:00:39

for så kan jeg jo kalde den funktion i andre subs hvis jeg skal bruge tallet inden jeg får det gemt i min database.

jeg vender lige tilbage i morgen aften efter 19 da jeg skal i seng nu og på arbejde imorgen til 19 så håber det er ok, men vil du ikke alligevel smide et svar.

;) Nat Nat
Avatar billede want2learn Nybegynder
19. maj 2006 - 00:16 #12
kunne ikke lade være med at kigge på det

jeg har et par små spm.
1. hvis et ord indholder 2 opslag.Add så vil den kun vise det tal for den som den finder først ikke !?
2. jeg har sen og SEN som søge ord det er vel det samme i Asp.net der er den ligeglad med STORE og små bogstaver eller !?
3. Hvis nu at den skal kigge efter om det er STORT eller småt Hvis nu sen skulle være = 16 og SEN = 18 hvad så, Hvis svaret er NEJ til 2. så ved jeg at den kigger på store som store og små som små. ;)

min kode er nu (og det virker som det skal PT.)
Function TheYear(ByVal SearchTeam As String) As Integer
        Dim opslag As New Dictionary(Of String, Integer)()

        opslag.Add("ode", 4)
        opslag.Add("ikro", 5)
        opslag.Add("ini", 8)
        opslag.Add("ille", 10)
        opslag.Add("LP", 10)
        opslag.Add("Dren", 12)
        opslag.Add("Piger", 12)
        opslag.Add("reju", 14)
        opslag.Add("meju", 14)
        opslag.Add("egeju", 14)
        opslag.Add("igeju", 14)
        opslag.Add("Jun", 14)
        opslag.Add("reyn", 16)
        opslag.Add("meyn", 16)
        opslag.Add("egeyn", 16)
        opslag.Add("Yng", 16)
        opslag.Add("oys", 33)
        opslag.Add("etera", 40)
        opslag.Add("rese", 18)
        opslag.Add("mese", 18)
        opslag.Add("Ser", 18)
        opslag.Add("Sen", 18)
        opslag.Add("SEN", 18)
        opslag.Add("S", 18)
        opslag.Add("vind", 18)
        opslag.Add("erre", 18)
        opslag.Add("ame", 18)
        opslag.Add("DS", 18)
        opslag.Add("iv", 18)
        opslag.Add("val", 18)
        opslag.Add("ong", 18)
        opslag.Add("liga", 18)
        opslag.Add("21", 21)

        For Each key As String In opslag.Keys
            If SearchTeam.Contains(key) Then Return opslag(key)
        Next

        Return -1
    End Function

            SearchTeam = TeamName
            TeamYear = TheYear(SearchTeam)

1000 tak Nielle.
Avatar billede nielle Nybegynder
19. maj 2006 - 06:17 #13
Ad 1) Ja.

Ad 2) Nej, ASP.NET (ellere rettere sagt .Net) er case-sensitiv. Der er altså forskel på sen og SEN.

Ad 3) Det ser rigtigt ud.

... og et svar :^)
Avatar billede nielle Nybegynder
19. maj 2006 - 06:18 #14
... og et svar ...
Avatar billede nielle Nybegynder
19. maj 2006 - 06:18 #15
Go'morgen!
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