Avatar billede goose Nybegynder
19. september 2003 - 08:57 Der er 15 kommentarer og
1 løsning

Find id nummer ud fra mappenavn

Mit system opretter en ny mappe ud fra id nummeret i databasen hver gang jeg opretter en ny side og i mappen ligger der altid en fil ved navn default.asp.
Mappen kunne hedde mappe67 og jeg vil så gerne i min default.asp i mappen kunne sige, at det er id nummer 67 jeg skal bruge fra databasen.

Jeg har tidligere fået hjælp til noget lign. dog var der her tale om at det var filnavnet jeg skulle udskille id nummeret fra og nu er det altså mappenavnet. Sidste fik jeg denne funktion til et filnavn på side67.asp:

strAddresse = Request.ServerVariables("SCRIPT_NAME")
strAddresse = Right(strAddresse, Len(strAddresse) - InStrRev(strAddresse, "/")-4)
strAddresse = Left(strAddresse, InStrRev(strAddresse, ".") - 1)
id = strAddresse

- men jeg kan dælme ikke få den rettet til så den kan bruges på mappenavne ?

/Goose
Avatar billede cesil Nybegynder
19. september 2003 - 09:05 #1
prøv noget a'la

mappe = mappe67
mappeid = mid(mappe,6,len(mappe)-5)
Avatar billede eagleeye Praktikant
19. september 2003 - 09:09 #2
Du kan lave noget som dette:

mappe67/uuu.ddo
strAddresse = Request.ServerVariables("SCRIPT_NAME")
strAddresse = Left(strAddresse, Len(strAddresse)-InStrRev(strAddresse,"/")
'Så har du mm/mappeXX i strAddress så kan du men Right tage de to tal:
strAddresse = Right(strAddresse,2)

id = strAddresse
Avatar billede eagleeye Praktikant
19. september 2003 - 09:09 #3
bemærk den antager der er to tal som ID så 7 eller 233 vil den tager forkelt tal
Avatar billede goose Nybegynder
19. september 2003 - 09:19 #4
cesil >> jeg tror ikke jeg kan bruge dit forslag. Det jeg har brug for er, at default.asp som i dette eks. ligger i mappe67 skal vide at den skal trække data fra id nr, 67 i databasen, altså skal filen finde ud af hvilket mappenr den ligger i.

eagleeye >> jeg tror du er inde på noget fa det rigtige, men id nummeret kan jo bestå af tal fra 1 til rigtig mange, så det går nok ikke, men omvendt var det vist dig der gav mig hjælp til det eksempel jeg postede, og der kan nummeret jo også varierer ?

/Goose
Avatar billede eagleeye Praktikant
19. september 2003 - 09:32 #5
Ja ok, det kan jeg se nu, hvordan den virker, så må der lige ligt mere på.:

strAddresse = Request.ServerVariables("SCRIPT_NAME")
strAddresse = Left(strAddresse, Len(strAddresse)-InStrRev(strAddresse,"/")
'Så har du mm/mappeXX i strAddress så kan du men Right tage de to tal:
index = inStrRev(strAddresse,"/")
if index > 0 then strAddresse = Mid(strAddresse, (len(strAddresse)-index)+2)
tal = ""
for i = 1 to len(strAddresse)
  if isNumeric(Mid(strAddresse,i,1)) then
    tal = tal & Mid(strAddresse,i,1)
  end if
next

id = tal
Avatar billede eagleeye Praktikant
19. september 2003 - 09:35 #6
Eller hedder folderen aldid mappe så antal karakter inden tallet er 5? så kunne man lave det med en streng funtion som det gamle..

Så dette:

tal = ""
for i = 1 to len(strAddresse)
  if isNumeric(Mid(strAddresse,i,1)) then
    tal = tal & Mid(strAddresse,i,1)
  end if
next

id = tal


Bliver til dette:

id = Mid(strAddresse,6)
Avatar billede goose Nybegynder
19. september 2003 - 09:45 #7
Du har ret i, at foldren altid vil hedde mappe + id nr.
Jeg får følgende fejl i dit eksempel:

Tegnet ')' var ventet
/webdesign/mappe67/default.asp, line 3, column 74
strAddresse = Left(strAddresse, Len(strAddresse)-InStrRev(strAddresse,"/")

Jeg har så sat en ) sidst i linien da jeg mener det er der den mangler, men så får jeg abosolut intet udskrevet ?!?

/Goose
Avatar billede goose Nybegynder
19. september 2003 - 10:08 #8
Som jeg lige ser det så må det være noget med:

/webdesign/mappe67/default.asp

Fjern de sidste 12 karakterer:
/webdesign/mappe67

gå tilbage til den førstkommende / og fjern 5 karakterer til højre for /

Dette vil give 67

Jeg mener dette må være måden, vil den også kunne tage hvilket som helst nr, men jeg kan ikke lige få det skruet rigtigt sammen ......

/Goose
Avatar billede eagleeye Praktikant
19. september 2003 - 10:08 #9
strAddresse = Request.ServerVariables("SCRIPT_NAME")
strAddresse = Left(strAddresse, Len(strAddresse)-InStrRev(strAddresse,"/"))
index = inStrRev(strAddresse,"/")
if index > 0 then strAddresse = Mid(strAddresse, (len(strAddresse)-index)+2)
id = Mid(strAddresse,6)
Avatar billede eagleeye Praktikant
19. september 2003 - 10:10 #10
Ja det er stort set sådan koden gør..
Avatar billede goose Nybegynder
19. september 2003 - 10:22 #11
ja, men om ikke andet så får jeg altså ikke det rigtige resultat som du kan se på: www.goose.dk/mappe67

/Goose
Avatar billede eagleeye Praktikant
19. september 2003 - 10:28 #12
prøe meD:

strAddresse = Request.ServerVariables("SCRIPT_NAME")
strAddresse = Left(strAddresse, InStrRev(strAddresse,"/")-1)
index = inStrRev(strAddresse,"/")
if index > 0 then strAddresse = Mid(strAddresse, index+1)
id = Mid(strAddresse,6)
Avatar billede goose Nybegynder
19. september 2003 - 10:39 #13
- så er vi der næsten, nu giver resultatet : mappe67
- så skal vi bare have fjernet mappe :o)

/Goose
Avatar billede eagleeye Praktikant
19. september 2003 - 10:41 #14
Dette skulle fjerne de første:
id = Mid(strAddresse,6)
Avatar billede eagleeye Praktikant
19. september 2003 - 10:45 #15
og det er id du udskriver og ikke strAddresse?
Avatar billede goose Nybegynder
19. september 2003 - 10:51 #16
jo du har fuldstændig ret, det er mig der sidder og nosser gevaldigt i det, jeg takker endnu engang for din hjælp og tålmodighed.

/Goose
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