Avatar billede websam Nybegynder
14. februar 2003 - 13:23 Der er 22 kommentarer og
2 løsninger

Skal plukke bestemt streng fra ???

Hvordan får jeg plukket denne linie :

pnutr=989245

Ud fra denne streng :

(09-11-2002 13:24:24,Capture,HTTP/1.1 200 OK Date: Sat, 09 Nov 2002 12:19:35 GMT Server: Apache-AdvancedExtranetServer/1.3.23 (Mandrake Linux/4mdk) mod_ssl/2.8.7 OpenSSL/0.9.6c Content-Type: text/plain Set-Cookie: AF_SID=d227b3a7667cbaa4424dfbcba4f2f580; path=/ X-Cache: MISS from www.paynet.no Connection: close Transfer-Encoding: chunked 5a pnutr=989245 utref=379 payco=4 totam=39.95 curry=USD ttype=1 rtype=1 status=140 ccnr=09079 0 , (08-11-2002 17:19:47,Auth,HTTP/1.1 200 OK Date: Fri, 08 Nov 2002 16:14:53 GMT Server: Apache-AdvancedExtranetServer/1.3.23 (Mandrake Linux/4mdk) mod_ssl/2.8.7 OpenSSL/0.9.6c Content-Type: text/plain Set-Cookie: AF_SID=4b60d1f71c7a8e1e16b97fdb470d2503; pat

Nogle forslag til dette ???

/WebSam
Avatar billede stoney96 Nybegynder
14. februar 2003 - 13:41 #1
Man kan bruge regulære udtryk (søg på dette) eller blot noget á la:

startpunkt = instr(TekstStreng, "pnutr=") + 6 'de 6 er længden af "pnutstr="
slutpunkt = instr(startpunkt, TekstStreng, " ")
Vaerdi = mid(TekstStreng, startpunkt, slutpunkt-startpunkt)

response.write Vaerdi

' Frit fra hukommelsen. Jeg har ikke afprøvet det......
Avatar billede websam Nybegynder
14. februar 2003 - 13:49 #2
Ok så kom den til at se således ud :

989245 utref=379 payco=4 totam=39.95 curry=USD ttype=1 rtype=1 status=140 ccnr=09079 0 ,

Det var da noget af vejen dog skal det siges at pnutr nummeret godt kan bestå af mere end 6 tal
Avatar billede stoney96 Nybegynder
14. februar 2003 - 14:16 #3
Jeg prøvede at ramme første mellemrum efter nummeret med

slutpunkt = instr(startpunkt, TekstStreng, " ")

Prøv evt.
slutpunkt = instr(startpunkt, TekstStreng, chr(32))

- Sorry - jeg sidder pt. ikke ved en skærm hvor jeg selv kan afprøve det fra...
Avatar billede midas_dk Nybegynder
14. februar 2003 - 15:17 #4
Split strengen op ved mellemrum, og løb igennem arrayet. For hver post tjekker du, om InStr("pnutr"). Hvis "pnutr" findes i strengen, kan du jo lave:

mid(streng,7,len(streng)-1)
Avatar billede websam Nybegynder
17. februar 2003 - 11:36 #5
midas_dk >> Kunne du give mig lidt mere at prøve med jeg er ikke helt med på hvad du mener jeg skal gøre :o)
Avatar billede websam Nybegynder
17. februar 2003 - 11:37 #6
stoney96 >> Fik du prøvet af om du kunne finde den sidste lille fejl i det du skrev ?
Avatar billede eagleeye Praktikant
17. februar 2003 - 12:34 #7
Det som midas_dk mener er dette og her skal str så være den lange streng du har:

arr = Split (str, " ")
for i = lbound(arr) to ubound(arr)
  if inStr(1, arr(i), "pnutr=") > 0 then
    pnutr_value = Trim(Mid(arr(i),7))
    exit for
  end if
next

Response.write pnutr_value
Avatar billede midas_dk Nybegynder
17. februar 2003 - 12:35 #8
Dim arrText, strTmp

arrText = Split("din tekst her", " ")

For Each strTmp In arrText
  If InStr(strTmp,"pnutr") Then
    Response.Write Mid(strTmp,7,Len(strTmp)-1)
  End If
Next
Avatar billede midas_dk Nybegynder
17. februar 2003 - 12:36 #9
Hehe... To sjæle én tanke...
Avatar billede midas_dk Nybegynder
17. februar 2003 - 12:38 #10
Men eagleeye har mere ret end jeg - mit eks. har ikke fået = med i InStr... ;-)
Avatar billede websam Nybegynder
17. februar 2003 - 12:45 #11
eagleeye >>
Ok det ser godt ud men jeg får stadig dette :

989245 utref=379 payco=4 totam=39.95 curry=USD ttype=1 rtype=1 status=140 ccnr=09079 0 ,

og det skulle jo kun være "989245" der skulle vises :o)

midas_dk >>
Og med dit eksempel viser slet ikke noget når jeg udskriver det
Avatar billede eagleeye Praktikant
17. februar 2003 - 12:47 #12
Er du sikker på der er mellemrum melle de foskellige dele af strengen?
Avatar billede eagleeye Praktikant
17. februar 2003 - 12:49 #13
Hvilken karakter er der mellem 989245 og utref=379 osv. i strengen. Det ligner mellemrum men det er det ikke det må være en anden karakter.

989245 utref=379 payco=4 totam=39.95 curry=USD ttype=1 rtype=1 status=140 ccnr=09079 0 ,
Avatar billede eagleeye Praktikant
17. februar 2003 - 12:50 #14
Hvis du finder ud af det kan du bruge stoney96's svar 14/02-2003 13:41:32 bare udskift " " med den karakter som skiller eksvis ","
Avatar billede websam Nybegynder
17. februar 2003 - 12:54 #15
Jeg har tjekket i db og der er det en firkant jeg ved ikke lige hvordan jeg skal skrive den her ?!?
Avatar billede eagleeye Praktikant
17. februar 2003 - 12:56 #16
Hvis du prøver at copy/paste firkanten fra DB og ind i mellem sådanne to ""

For stoney96:
slutpunkt = instr(startpunkt, TekstStreng, "[]")

Ved min/midas_dk:
arr = Split (str, "[]")
Avatar billede websam Nybegynder
17. februar 2003 - 12:59 #17
Det kan jeg ikke så laver den bare et linieskift !
Avatar billede eagleeye Praktikant
17. februar 2003 - 13:09 #18
Så det er et linie skift? Så prøve med VbCr eller vbLf

arr = Split (str, vbCr)
Avatar billede websam Nybegynder
17. februar 2003 - 13:09 #19
Så den [] må jo angive et linie skift hvordan jeg så end skal håntere den ?
Avatar billede eagleeye Praktikant
17. februar 2003 - 13:10 #20
Eller skal "utref=" bruges som stop, men det kræver så at "utref" altid kommer lige efter "pnutr".
Avatar billede eagleeye Praktikant
17. februar 2003 - 13:12 #21
Du skal nok bruge dette da den karakter som er før pnutr er et mellemrum da den jo finder det rigtige tal.

startpunkt = instr(TekstStreng, "pnutr=") + 6 'de 6 er længden af "pnutstr="
slutpunkt = instr(startpunkt, TekstStreng, vbCr)
Vaerdi = mid(TekstStreng, startpunkt, slutpunkt-startpunkt)

response.write Vaerdi
Avatar billede websam Nybegynder
17. februar 2003 - 13:12 #22
Kanon så er den hjemme takker for hjælpen :o)
Avatar billede websam Nybegynder
17. februar 2003 - 13:14 #23
Jeg håber det er ok at i deler :o)
Avatar billede midas_dk Nybegynder
17. februar 2003 - 13:17 #24
Pokkers... Der kom arbejde i vejen :-)

Det her virker hos mig:

Dim txt
txt = "(09-11-2002 13:24:24,Capture,HTTP/1.1 200 OK Date: Sat, 09 Nov 2002 12:19:35 GMT Server: Apache-AdvancedExtranetServer/1.3.23 (Mandrake Linux/4mdk) mod_ssl/2.8.7 OpenSSL/0.9.6c Content-Type: text/plain Set-Cookie: AF_SID=d227b3a7667cbaa4424dfbcba4f2f580; path=/ X-Cache: MISS from www.paynet.no Connection: close Transfer-Encoding: chunked 5a pnutr=989245 utref=379 payco=4 totam=39.95 curry=USD ttype=1 rtype=1 status=140 ccnr=09079 0 , (08-11-2002 17:19:47,Auth,HTTP/1.1 200 OK Date: Fri, 08 Nov 2002 16:14:53 GMT Server: Apache-AdvancedExtranetServer/1.3.23 (Mandrake Linux/4mdk) mod_ssl/2.8.7 OpenSSL/0.9.6c Content-Type: text/plain Set-Cookie: AF_SID=4b60d1f71c7a8e1e16b97fdb470d2503; pat"

arrText = Split(txt, " ")
Dim i
i = 0

For Each strTmp In arrText
  If InStr(strTmp,"pnutr=") Then
    Response.Write Mid(strTmp,7,Len(strTmp)-1)
  End If
Next
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