Avatar billede celal Nybegynder
01. juli 2002 - 15:29 Der er 23 kommentarer og
2 løsninger

opdel en string

Jeg skal have delt en tekst treng op i to dele.
Strengen ser eks. sådan ud: 255/45555, dette skal deles op i 255 og 45555, dvs. at "/" skiller dem ad.

Hvordan kan jeg ud fra dette få skilt tekst strengen?

Alle Strengene bliver skal skilles når der er en "/" imellem dem.
Avatar billede oasen Nybegynder
01. juli 2002 - 15:32 #1
Liste = "255/45555"

arrTekst = Split(Liste, "/")

Response.Write arr(0)
Response.Write arr(1)

Var det det, du tænkte på?
Avatar billede oasen Nybegynder
01. juli 2002 - 15:35 #2
Dim Liste, arrTekst

Liste = "255/45555"

arrTekst = Split(Liste, "/")

Response.Write arrTekst(0)
Response.Write arrTekst(1)
Avatar billede terry Ekspert
01. juli 2002 - 15:48 #3
left(liste, 3)
Right(liste, 5)

you can also use these functions

mid
inStr
Avatar billede celal Nybegynder
01. juli 2002 - 15:50 #4
Hvad er arrTekst?..Array?

Dvs. at der i arrTekst(0) nu er 255 og i arrTekst(1) er 45555 ??

Ærklære man et array ved bare at skrive : Dim arrTekst ??

Jeg prøver lige mens du svare  :o)
Avatar billede mugs Novice
01. juli 2002 - 15:51 #5
flg kode uddrager de 3 første tegn i Felt4:

Dim Streng As String
Streng = Felt4
Felt1 = Left(String:=Streng, length:=3)

Ska du have de sidste udskifter du Left med Right
01. juli 2002 - 15:51 #6
Løsning=left(streng,3)& mid(streng, 4,5)
Avatar billede oasen Nybegynder
01. juli 2002 - 15:54 #7
celal ---> Ja, det er jo den måde, man plejer at gøre det på.
Men du kan også bruge left/mid/right-funktionerne som beskrevet. Dog forudsat at teksten på hver side af "/" altid har samme længde, og det ved jeg ikke, om den har.
Avatar billede oasen Nybegynder
01. juli 2002 - 15:56 #8
Du behøver ikke erklæringerne, men det er god skik.
Avatar billede oasen Nybegynder
01. juli 2002 - 15:58 #9
Ja, du kan selvfølgelig også bruge left/mid/right, men det kræver så, at du kombinerer dem med instr, hvis teksten har variende længde.
Avatar billede celal Nybegynder
01. juli 2002 - 16:06 #10
Oasen, Split som du bruger, hvad er det for en funktion, er det en du selv har lavet, for jeg kan ikke bruge den (Bruger Access 97)
Avatar billede celal Nybegynder
01. juli 2002 - 16:08 #11
Terry og mugs, problemmet er også at tekstens position og længde er ikke fast, det kunne lige så godt havde været 67687/87.
Avatar billede celal Nybegynder
01. juli 2002 - 16:09 #12
Er der nogen der har en funktion eller kan lave en funktion til mig?
Avatar billede celal Nybegynder
01. juli 2002 - 16:15 #13
Oasen din Split funktion virker ikke
Avatar billede celal Nybegynder
01. juli 2002 - 16:16 #14
Terry, hvordan bruger jeg Instr i mit til fælde?
Avatar billede oasen Nybegynder
01. juli 2002 - 16:44 #15
Funktionen har jo ikke noget med din database at gøre. Du trækker en streng ud, og udskriver hvad der står på begge sider af "/".
Det virker fint, og det er ikke noget jeg selv har "opfundet"!
Avatar billede oasen Nybegynder
01. juli 2002 - 16:50 #16
Prøv at lave et linieskift, så kan du se, at det virker:

Response.Write arrTekst(0) & "<br>"
Response.Write arrTekst(1)
Avatar billede celal Nybegynder
01. juli 2002 - 16:52 #17
Oasen, er det mig eller er du i det forkerte rum? Er det ikke ASP du sidder og fyre af? Det er Access jeg sidder og arbejder med, jeg er ikke helt sikker på om det er det samme vi snakker om
Avatar billede oasen Nybegynder
01. juli 2002 - 16:55 #18
Left, Mid og Right er også ASP.
Hvis du har et felt i din DB indeholdende "67687/87", skal dette udskrives som "67687" og "87" i brugerens browser.
Er det korrekt forstået?
Avatar billede celal Nybegynder
01. juli 2002 - 16:55 #19
Terry, Jeg prøver at bruge Instr på denne måde:

StrCount = InStr(0, Nummerg, "/", vbTextCompare)

Men jeg får en fejl, hvad er der galt med den?
Avatar billede celal Nybegynder
01. juli 2002 - 17:04 #20
Browser????? Jeg bruger Access og ikke ASP, Jeg sidder og koder i VBA i Access.
Avatar billede oasen Nybegynder
01. juli 2002 - 17:09 #21
Ja, ja - bare du selv ved, hvad du vil...
Avatar billede itbjarne Nybegynder
01. juli 2002 - 17:21 #22
Tager højde for forskellige strenglængder og bruger "/" som adskillelse:
Dim varStreng, varResult1, varResult2 As String
varStreng = "255/45555"
varResult1 = Left$(varStreng, InStr(varStreng, "/") - 1)
varResult2 = Mid$(varStreng, InStr(varStreng, "/") + 1)
MsgBox varResult1
MsgBox varResult2
Avatar billede mugs Novice
01. juli 2002 - 17:42 #23
denne kode er afprøvet i Access97 og fungerer perfekt:

Private Sub felt1_BeforeUpdate(Cancel As Integer)
Dim SearchChar As String
Dim SearchString As String
Dim Streng As String
SearchChar = "/"
SearchString = felt1
Streng = felt1
felt2 = Left(String:=Streng, length:=(InStr(1, SearchString, SearchChar, 1) - 1))
End Sub
Avatar billede mugs Novice
01. juli 2002 - 17:46 #24
Først defineres hvilket tegn der adskiller delene i strengen:
SearchChar = "/"

Derefter i hvilket felt der skal søges:
SearchString = felt1

Så defineres strengen i funktionen der uddrager x antal tegn:
Streng = felt1

felt 2 sættes = beregningen af de uddragne tegn. Det sidste tegn i funktionen (-1), gør at / ikke kommer med i felt2
Avatar billede celal Nybegynder
02. juli 2002 - 09:41 #25
Jeg har brugt denne kode:

Nummerg = Rst.Fields("NummergoglNr")
StrCount = InStr(Nummerg, "/")
If StrCount <> 0 Then
  Konsulent = Left(Nummerg, StrCount - 1)
  Leng = Len(Nummerg)
  OrdreNo = Right(Nummerg, Leng - StrCount)
End if
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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