Avatar billede biohazard_666 Nybegynder
01. juni 2004 - 19:58 Der er 20 kommentarer og
1 løsning

Split tekst op

Hejsa...

Sidder med et lille problem :)

Hvordan splitter man en tekst op? Jeg skulle gerne have lavet noget lign det her:

Client -> Hej server, nu er jeg forbundet til dig
Client <- Ja, det kan jeg se, hva er dit brugernavn?
Client -> Det er 'Eksperter'
Clinet <- Oki.. Tak for det....

Client -> = til server
Client <- = Svar fra server

Når jeg skal sende mit brugernavn vil jeg gerne sende en kommando lign den her:
/user 'Eksperter'

og så finder serveren så ud af at den kommando "fortæller" ens brugernavn...

Ved ikk om det er til at forstå.. Ellers må i lige sige til :)

/Bio
Avatar billede thesurfer Nybegynder
01. juni 2004 - 20:12 #1
Eksempel (er ikke testet, der kan være fejl i "mid", "left", mht værdierne):

dim s as string ' strengen
dim c as string ' Command / kommandoen
dim u as string ' User / brugernavn
s = txtCommand.text

if left(s, 1) = "/" then
' dette er en kommando.. find kommandoen:
c = mid(s, 2, instr(s, " ") -1)

' hvis der er flere/mange kommandoer:
select case c
case "user"
' det er user-kommandoen... find brugernavn:
u = mid(s, instr(s, "'"))
u = left(u, instr(u, "'"))
msgbox "brugeren hedder: " & u

case "quit"
msgbox "kommandoen er quit"

end select
Avatar billede thesurfer Nybegynder
01. juni 2004 - 20:13 #2
glemte "end if" efter "end select":

end select
end if
Avatar billede thesurfer Nybegynder
01. juni 2004 - 20:25 #3
Jeg har lige testet det med ASP.. der var en del fejl, så her er en version der virker:

dim s as string ' strengen
dim c as string ' Command / kommandoen
dim u as string ' User / brugernavn
s = txtCommand.text

if left(s, 1) = "/" then
' dette er en kommando.. find kommandoen:

if instr(s, "?") then
  ' der er et mellemrum.. "c" = starten af "s", og indtil mellemrummet:
  c = mid(s, 2, instr(s, "?") - 2)
else
  ' c = fra andet tegn, og resten af "s":
  c = mid(s, 2)
end if

' hvis der er flere/mange kommandoer:
select case c
case "user"
' det er user-kommandoen... find brugernavn:
u = mid(s, instr(s, "'") +1)
u = left(u, instr(u, "'") -1)
msgbox "brugeren hedder: " & u

case "quit"
' dette er quit-kommandoen
msgbox "kommandoen er quit"

end select
else
msgbox "almindelig tekst"
end if
Avatar billede thesurfer Nybegynder
01. juni 2004 - 20:26 #4
hmm.. "?" er en del af ASP testen, og skal erstattes af " ":

c = mid(s, 2, instr(s, " ") - 2)
Avatar billede biohazard_666 Nybegynder
01. juni 2004 - 20:41 #5
prøver det lige :)
Avatar billede thesurfer Nybegynder
01. juni 2004 - 20:43 #6
biohazard_666> Er det dig? :-)  (så ikke hvem det var..)
Hvordan går det med "mit program compiler et andet program"-projektet..?
Avatar billede biohazard_666 Nybegynder
01. juni 2004 - 20:45 #7
kan ikk få det til.. Ingen reaktion når jeg fx skriver:
/user 'Bio'
Avatar billede biohazard_666 Nybegynder
01. juni 2004 - 20:46 #8
biohazard_666> Er det dig? :-)  (så ikke hvem det var..)
Hvordan går det med "mit program compiler et andet program"-projektet..?

Ja det er mig ;)

Tjoo... Tror jeg lukker... Behøver det ik mere ;)
Det var mest fordi jeg var nysgerrig.. hehe
Avatar billede thesurfer Nybegynder
01. juni 2004 - 20:49 #9
Nix putte.. nu vil jeg gerne vide, hvorfor "/user 'Bio'" ikke virker :-)

- Hvilken fejl får du?
Avatar billede thesurfer Nybegynder
01. juni 2004 - 20:50 #10
Eller var "nysgerrig" til "program..compiler..prog.." ..? :-)
Avatar billede biohazard_666 Nybegynder
01. juni 2004 - 20:50 #11
Ingen fejl... Faktisk slet ingen ting :(
Avatar billede thesurfer Nybegynder
01. juni 2004 - 20:52 #12
Nå.. så må jeg jo lette en-vis-del-af-min-anatomi, og starte vb..
Avatar billede biohazard_666 Nybegynder
01. juni 2004 - 20:54 #13
:D
Avatar billede thesurfer Nybegynder
01. juni 2004 - 20:55 #14
Jeg tror at jeg havde givet dig noget forkert kode.. her er den rigtige:

Dim s As String ' strengen
Dim c As String ' Command / kommandoen
Dim u As String ' User / brugernavn
s = txtCommand.Text

If Left(s, 1) = "/" Then
' dette er en kommando.. find kommandoen:

If InStr(s, " ") Then
  ' der er et mellemrum.. "c" = starten af "s", og indtil mellemrummet:
  c = Mid(s, 2, InStr(s, " ") - 2)
Else
  ' c = fra andet tegn, og resten af "s":
  c = Mid(s, 2)
End If

' hvis der er flere/mange kommandoer:
Select Case c
Case "user"
' det er user-kommandoen... find brugernavn:
u = Mid(s, InStr(s, "'") + 1)
u = Left(u, InStr(u, "'") - 1)
MsgBox "brugeren hedder: " & u

Case "quit"
' dette er quit-kommandoen
MsgBox "kommandoen er quit"

End Select
Else
MsgBox "almindelig tekst"
End If
Avatar billede biohazard_666 Nybegynder
01. juni 2004 - 20:58 #15
jamen det virker jo :)
Smid et svar, så får du point :)
Avatar billede thesurfer Nybegynder
01. juni 2004 - 20:59 #16
Og et svar er smidt ;-)
Avatar billede biohazard_666 Nybegynder
01. juni 2004 - 21:01 #17
Takker for hjælpen.. (endnu en gang :))

<*-*-*-* SPØRGSMÅL LUKKET -*-*-*->
Avatar billede thesurfer Nybegynder
01. juni 2004 - 21:01 #18
En lille (men vigtig) rettelse:

Select Case LCase(c)

Så laver der indholdet af "c", til små bogstaver, da der er forskel på "user" og "uSeR", osv..

husk det i dine "case"s: case "kommando med små bogstaver"
Avatar billede thesurfer Nybegynder
01. juni 2004 - 21:01 #19
Det var så lidt, og takker for points :-)
Avatar billede thesurfer Nybegynder
01. juni 2004 - 21:04 #20
hehe.. kommer altid på noget, når man er "færdig" :-)

En tilføjelse (case else):

Case "quit"
' dette er quit-kommandoen
MsgBox "kommandoen er quit"

Case Else
MsgBox "Ugyldig kommando!"

End Select

Hvis det er en kommando, hvor kommandoen ikke er defineret, får man en "Ugyldig kommando"..
Avatar billede biohazard_666 Nybegynder
01. juni 2004 - 21:09 #21
oki :) (til alt :P)
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