Just nu i M3-nätverket
Gå till innehåll

Sök rätt på och plocka ut del av sträng


matt

Rekommendera Poster

Hej

Har ett litet problem när det gäller strängar...

Har en sökväg tex c:\spanjoren\greger i\spanien.xls (de kan vara olika varje gång det enda som är säkert är ju dokumentets namn som är från sista "\" och framåt i detta fall spanien.xls) som jag lägger i en variabel. Hur gör jag för att enbart få ut spanien.xls? Skulle vilja att han sökte bakifrån fram tills "han" hittade första "\" och sen plockade in det i en ny variabel.

 

T ex:

sokvag=c:\spanjoren\greger i\spanien.xls

??????

dokumentnamn = spanien.xls

Tacksam för hjälp!

/Mattias

Länk till kommentar
Dela på andra webbplatser

Du menar så här eller?

 

sokvag=c:\spanjoren\greger i\spanien.xls

dokumentnamn = right(sokvag,11)

response.write (dokumentnamn)

 

Det fins ju ingen anledning till att söka reda på \ teknet. efter som spanien.xls alltid är det samma.

 

Det jag inte förstår är om spanien.xls alltid är samma så kan du väll skriva.

dokumentnamn = "spanien.xls "

[inlägget ändrat 2002-11-28 11:06:46 av GronK]

Länk till kommentar
Dela på andra webbplatser

Mja.. problemet är ju jag inte vet vilken position första "\" från höger är. Sökvägen kan nästa gång vara c:\pelle\går\överbäcken.xls så positionen ändras ju hela tiden...

 

/M

 

 

Länk till kommentar
Dela på andra webbplatser

Jag läste så fel.. sorry..

något sånt här blir det.

 

for i=1 to len(sokvag)

if len(sokvag)-i <> 0 then

if Mid(strPath, len(sokvag)-i, 1) = "/" then

dokumentnamn = left(sokvag, len(sokvag)-i)

exit for

end if

end if

next

 

Länk till kommentar
Dela på andra webbplatser

Det skulle ju vara kanon om det gick att söka baklänges. Du har inStr() som kan söka efter "\", men det den returnerar är ju första förekomsten.

 

Så varför inte vända på strängen? Knacka in följande:

 

Function flipString(str)
 Dim i,s
 s = ""
 For i = Len(str) To 1 Step -1
   s = s & Mid(str,i,1)
 Next
 flipString = s
End Function

 

Kör strängen genom den först, och sök sen som vanligt. Vänd strängen igen och lyft ut slutet.

 

Länk till kommentar
Dela på andra webbplatser

Bra förslag sun.

 

och till matt om du vill ha min så är den rätta denna.. jag är trött i dag hehe här!

 

 

sokvag = "x:halå/halå3/mip/hej/hallå.htm"

 

for i=1 to len(sokvag)

if len(sokvag)-i <> 0 then

if Mid(sokvag, len(sokvag)-i, 1) = "/" then

dokumentnamn = right(sokvag, i)

exit for

end if

end if

next

 

response.write("doc="&dokumentnamn)

 

[inlägget ändrat 2002-11-28 11:25:06 av GronK]

Länk till kommentar
Dela på andra webbplatser

Det GÅR att söka "baklänges" med hjälp av InStrRev.

 

Följande borde fungera (otestat):

 

dim sokvag, dokumentnamn
sokvag="c:\spanjoren\greger i\spanien.xls"
dokumentnamn = right(sokvag, len(sokvag)-InStrRev(sokvag, "\"))

 

Ciao,

Anders

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...