Avatar billede plexx Nybegynder
15. april 2002 - 23:41 Der er 15 kommentarer og
1 løsning

Problem med at læse dele af en linje.

Hej eksperter.

Jeg har denne linje til at stå i en tekstfil:
"Navn<xxx><yyy><zzz>" killed "Navn2<xxx2><yyy2><zzz2>" with "Våben"

Hvordan får jeg delt den linje op i disse variabler?
Navn =......
xxx =......
yyy =......
Navn2 =.....
xxx2 =.....
yyy2 =.....
zzz2 =.....
Våben =.....

Bemærk: alle variablerne skal kunne være forskellige længder.

På forhånd tak
Avatar billede jacobfedefifi Nybegynder
15. april 2002 - 23:43 #1
Bare en lille kommentar til scriptet, undgå at bruge æ,å,ø det kan give nogle dumme problemer. (Hvis våben alt så henviser til en variabel med å :-)"
Avatar billede plexx Nybegynder
15. april 2002 - 23:45 #2
ja det kan du have ret i
Avatar billede eagleeye Praktikant
15. april 2002 - 23:47 #3
lad mig tage et eks: du vil havde..
"plexx<45><46><47>" killed "eagleeye<10><11><12>" with "paintgun"
til:

Navn = plexx
xxx = <45> eller 45
ovs..
Navn2 = eagleeye
ovs ovs..

er det rigtigt forstået?
Avatar billede plexx Nybegynder
15. april 2002 - 23:48 #4
ja
Avatar billede plexx Nybegynder
15. april 2002 - 23:48 #5
xxx = 45
Avatar billede eagleeye Praktikant
16. april 2002 - 00:10 #6
Her er lidt kode..:


<html>
<head>
<title></title>
</head>
<body>

<%
dinStr = """plexx<45><46><47>"" killed ""eagleeye<10><11><12><"" with ""paintgun"""

indexStart = 2 'Index til første " 
indexSlut = inStr(1,dinStr,"<") 'index til første <
Navn = Mid(dinStr,indexStart,indexSlut-indexStart) 'Finder Navn
indexStart = indexSlut+1 'Sætter start til første char efter første <
indexSlut = inStr(indexStart,dinStr,">")  ' finder første >
xxx = Mid(dinStr,indexStart,indexSlut-indexStart) 'Finder XXX
indexStart = indexSlut+2 'Sætter start til første char efter anden <
indexSlut = inStr(indexStart,dinStr,">") ' finder anden >
yyy = Mid(dinStr,indexStart,indexSlut-indexStart) 'Finder YYY
indexStart = indexSlut+2 'Sætter start til første char efter 3. <
indexSlut = inStr(indexStart,dinStr,">") ' finder 3. >
zzz = Mid(dinStr,indexStart,indexSlut-indexStart) 'Finde 'ZZZ
indexStart = inStr(indexSlut+3,dinStr,"""") 'Finde " før Navn2
indexStart = indexStart + 1  'sætter start til første char i Navn2
indexSlut = inStr(indexStart,dinStr,"<") 'Finder slut på navn2
Navn2 = Mid(dinStr,indexStart,indexSlut-indexStart) 'kopier Navn2
indexStart = indexSlut+1 'Finder start på xxx2
indexSlut = inStr(indexStart,dinStr,">") 'finde slut på xxx2
xxx2 = Mid(dinStr,indexStart,indexSlut-indexStart) 'kopier xxx2
indexStart = indexSlut+2 'Finder start på yyy2
indexSlut = inStr(indexStart,dinStr,">") 'finde slut på yyy2
yyy2 = Mid(dinStr,indexStart,indexSlut-indexStart) 'kopier yyy2
indexStart = indexSlut+2 'Finder start på zzz2
indexSlut = inStr(indexStart,dinStr,">")  'finde slut på zzz2
zzz2 = Mid(dinStr,indexStart,indexSlut-indexStart) 'kopier zzz2
indexStart = inStr(indexSlut+3,dinStr,"""") 'finder start på vaaben
indexStart = indexStart + 1 'sætter start til først char i vaaben
vaaben = Mid(dinStr,indexStart,len(dinStr)-indexStart) 'kpoier vaaben




Response.Write "dinStr = " & dinStr & "<br>"
Response.Write "Navn = " & Navn & "<br>"
Response.Write "xxx = " & xxx & "<br>"
Response.Write "yyy = " & yyy & "<br>"
Response.Write "zzz = " & zzz & "<br>"
Response.Write "Navn2 = " & Navn2 & "<br>"
Response.Write "xxx2 = " & xxx2 & "<br>"
Response.Write "yyy2 = " & yyy2 & "<br>"
Response.Write "zzz2 = " & zzz2 & "<br>"
Response.Write "vaaben = " & vaaben & "<br>"

%>
</body>
</html>


det krøver at formatet er ens som du skriver det "navn<xxx>..."
Avatar billede eagleeye Praktikant
16. april 2002 - 00:18 #7
navnene må ikke indeholde >  og xxx,yyy,zzz må heller ikke indeholde < eller > som en del af teksten.

Men det har du nok taget højde for da du har brugt < og > som skille tegn.
Avatar billede plexx Nybegynder
16. april 2002 - 00:21 #8
hovsa jeg skulle jo også have "killed" med!!!  :)
ellers virker det fint
Avatar billede eagleeye Praktikant
16. april 2002 - 00:23 #9
hvor skal "killed" ind ?? i en variable??
Avatar billede plexx Nybegynder
16. april 2002 - 00:24 #10
ja tak
variablen skal hedde action
Avatar billede eagleeye Praktikant
16. april 2002 - 00:26 #11
ok så der kan også stå andet end killed...
Avatar billede plexx Nybegynder
16. april 2002 - 00:26 #12
yeps
Avatar billede eagleeye Praktikant
16. april 2002 - 00:31 #13
Sådan her:

<html>
<head>
<title></title>
</head>
<body>

<%
dinStr = """plexx<123""45><46><47>"" killed ""eagleeye<10><11><1NOGET ANDET>"" with ""paintgun"""

indexStart = 2 'Index til første " 
indexSlut = inStr(1,dinStr,"<") 'index til første <
Navn = Mid(dinStr,indexStart,indexSlut-indexStart) 'Finder Navn
indexStart = indexSlut+1 'Sætter start til første char efter første <
indexSlut = inStr(indexStart,dinStr,">")  ' finder første >
xxx = Mid(dinStr,indexStart,indexSlut-indexStart) 'Finder XXX
indexStart = indexSlut+2 'Sætter start til første char efter anden <
indexSlut = inStr(indexStart,dinStr,">") ' finder anden >
yyy = Mid(dinStr,indexStart,indexSlut-indexStart) 'Finder YYY
indexStart = indexSlut+2 'Sætter start til første char efter 3. <
indexSlut = inStr(indexStart,dinStr,">") ' finder 3. >
zzz = Mid(dinStr,indexStart,indexSlut-indexStart) 'Finde 'ZZZ
indexStart = inStr(indexSlut,dinStr,""" ") + 2 'Sætter start til første char efter " . i action
indexSlut = inStr(indexStart,dinStr," """) ' finder slut på action "
action = Mid(dinStr,indexStart,indexSlut-indexStart) 'Finde 'ZZZ



indexStart = inStr(indexSlut,dinStr,"""") 'Finde " før Navn2
indexStart = indexStart + 1  'sætter start til første char i Navn2
indexSlut = inStr(indexStart,dinStr,"<") 'Finder slut på navn2
Navn2 = Mid(dinStr,indexStart,indexSlut-indexStart) 'kopier Navn2
indexStart = indexSlut+1 'Finder start på xxx2
indexSlut = inStr(indexStart,dinStr,">") 'finde slut på xxx2
xxx2 = Mid(dinStr,indexStart,indexSlut-indexStart) 'kopier xxx2
indexStart = indexSlut+2 'Finder start på yyy2
indexSlut = inStr(indexStart,dinStr,">") 'finde slut på yyy2
yyy2 = Mid(dinStr,indexStart,indexSlut-indexStart) 'kopier yyy2
indexStart = indexSlut+2 'Finder start på zzz2
indexSlut = inStr(indexStart,dinStr,">")  'finde slut på zzz2
zzz2 = Mid(dinStr,indexStart,indexSlut-indexStart) 'kopier zzz2
indexStart = inStr(indexSlut+3,dinStr,"""") 'finder start på vaaben
indexStart = indexStart + 1 'sætter start til først char i vaaben
vaaben = Mid(dinStr,indexStart,len(dinStr)-indexStart) 'kpoier vaaben




Response.Write "dinStr = " & dinStr & "<br>"
Response.Write "Navn = " & Navn & "<br>"
Response.Write "xxx = " & xxx & "<br>"
Response.Write "yyy = " & yyy & "<br>"
Response.Write "zzz = " & zzz & "<br>"
Response.Write "action = " & action & "<br>"
Response.Write "Navn2 = " & Navn2 & "<br>"
Response.Write "xxx2 = " & xxx2 & "<br>"
Response.Write "yyy2 = " & yyy2 & "<br>"
Response.Write "zzz2 = " & zzz2 & "<br>"
Response.Write "vaaben = " & vaaben & "<br>"

%>
</body>
</html>
Avatar billede eagleeye Praktikant
16. april 2002 - 00:32 #14
hvad så med with ??  kan det også være noget andet..
Avatar billede plexx Nybegynder
16. april 2002 - 00:33 #15
tak for hjælpen
Avatar billede plexx Nybegynder
16. april 2002 - 00:33 #16
nix det ka det ik
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