webForumDet fria alternativet

Konstigt tecken - (Ta bort en del av en sträng + snabbhet)

ASP

17 svar · 361 visningar · startad av danielpetersson

Medlem sedan apr. 2002123 inlägg
Frågan#1

Hejsan!

Jag skriver så här i min ASP-kod:
dim path
path = "\bilder\" & artNr & ".jpg"
Om jag sedan skriver ut path blir det så här:
Response.Write path --> \bilder\99.jpg _
Var tecknet _ kommer ifrån har jag ingen aning om, men det läggs till alla bild namn som jag lägger in i path.
Nu till min fråga: Kan jag trimma bort det sista på strängen? Och i såfall: hur då?

Nu till en annan sak: Jag kör en dBase-databas och kommunikationen är grymt slö om man kommunicerar med databasen m h a ODBC:n. Jag vet att man kan köra via en BDE istället, men vet inte riktigt hur det går till. Är där någon som har något annat förslag till hur jag kan göra kommunikationen snabbare? Att byta till MySql, Microsoft SQL, Oracle mfl är tyvärr inte möjligt ännu, så de alternativen är uteslutet för er som tänkte svara det. :)

Tacksam för svar.

Medlem sedan dec. 200012 464 inlägg
#2
if len(str) > 0 then str = left(str,len(str-1))

tar bor sista tecknet från en sträng

_ måste komma någonstans ifrån i din kod. Du borde försöka hitta var det kommer in istället.

Medlem sedan apr. 2002123 inlägg
#3

Tack LarsG!

Förstår faktiskt inte var _ skulle kunna komma ifrån.
Om jag t ex skriver:
Response.Write artNr --> 99
sedan lägger jag bara till ".jpg"

Det får vara så så länge.

Medlem sedan apr. 2002123 inlägg
#4

dim path
path = "\bilder\" & artNr & ".jpg"

if len(path) > 0 then
path = left(path,len(path-1))
end if

Vad innebär felet:

Körningsfel i Microsoft VBScript fel '800a000d'
Inkompatibla typer: '[string: "\bilder\99.jpg"]'

Medlem sedan dec. 200012 464 inlägg
#5

Oj då, jag råkade skriva fel

if len(path) > 0 then 
path = left(path,len(path)-1) 
end if
Medlem sedan apr. 2002123 inlägg
#6

Det hände sannerligen en väldigt konstig sak.
Om jag skriver ut path nu så blir det så här:
Response.Write path --> \bilder\99.jp _

Fattar nada!?!?

Medlem sedan dec. 200012 464 inlägg
#7

Då ligger _ inte i path (vilket jag aldrig trodde heller). Koden tar bara bort g:et från jpg

Kan du visa mer kod?

Medlem sedan apr. 2002123 inlägg
#8

Så här ser koden ut:

<%
dim artNr
artNr = Request.QueryString("artnr")
set fso = Server.CreateObject("Scripting.FileSystemObject")

dim path
path = "\bilder\" & artNr & ".jpg"
if len(path) > 0 then
path = left(path,len(path)-1)
end if

IF fso.FileExists(path) = false THEN
'måste sätta den lika med false för att fso.FileExist blir alltid false
%>
<A href="\bilder\<%=artNr%>.jpg" target="resultat">
<IMG src="\bilder\<%=artNr%>.jpg" align="right" width="160" height="100" alt="<%=artNr%> - Klicka för full storlek">
</A>
<%
else
'kommer aldrig in i else-satsen p g a att fso.FileExist blir alltid false
Response.Write "bild saknas"
END IF
set fso = Nothing
%>

Medlem sedan dec. 200012 464 inlägg
#9

Det där med _ förstår jag inte. Annars så är det väl något problem med hur du skriver din path. Om du skriver dit en absolut adress då? FSO utgår väl från web-roten? (Det här är inte min starka sida.)

<% 
dim artNr 
artNr = Request.QueryString("artnr") 
set fso = Server.CreateObject("Scripting.FileSystemObject") 

dim path 
path = "c:\bilder\" & artNr & ".jpg" 

IF fso.FileExists(path) THEN 
'måste sätta den lika med false för att fso.FileExist blir alltid false 
%> 
<A href="\bilder\<%=artNr%>.jpg" target="resultat"> 
<IMG src="\bilder\<%=artNr%>.jpg" align="right" width="160" height="100" alt="<%=artNr%> - Klicka för full storlek"> 
</A> 
<% 
else 
'kommer aldrig in i else-satsen p g a att fso.FileExist blir alltid false 
Response.Write "bild saknas" 
END IF 
set fso = Nothing 
%>
Medlem sedan apr. 2002123 inlägg
#10

Ja, jag utgår från webb-roten. Om jag skriver så här:
path = "\bilder\99.jpg"
Response.Write path
--> \bilder\99.jpg _

En konstig grej händer om jag sätter:
IF fso.FileExists(path) = true THEN

Om jag då skriver Response.Write path så skrivs:
--> \bilder\99.jpg

??????

Medlem sedan apr. 2002123 inlägg
#11

Konstigt tecken

Hej!

Jag får ett _ som jag inte förstår var det kommer ifrån. Koden ser ut enligt följande:

Dim path
path = "\bilder\"
Response.Write path & "<br>"
path = path & artNr
Response.Write path & "<br>"
path = path & ".jpg"
Response.Write path

Detta skrivs ut:

\bilder\
\bilder\99
\bilder\99.jpg _

Om jag kodar så här istället:

if len(path) > 0 then
path = left(path,len(path)-1)
end if

Så försvinner g:et i jpg. Någon som förstår kan förklara vad som är fel?

Tacksam för hjälp

Medlem sedan okt. 20005 273 inlägg
#12

Det måste ju komma nån annanstans ifrån........visa lite mer kod :)

Medlem sedan apr. 2002123 inlägg
#13

dim artNr
artNr = Request.QueryString("artnr")

set fso = Server.CreateObject("Scripting.FileSystemObject")
dim path
path = "\bilder\" & artNr & ".jpg"
IF fso.FileExists(path) = false THEN 'måste sätta lika med false pga _
%>
<A href="\bilder\<%=artNr%>.jpg" target="resultat">
<IMG src="\bilder\<%=artNr%>.jpg" align="right" width="160" height="100" alt="<%=artNr%> - Klicka för full storlek">
</A>
<%
else
Response.Write "bild saknas"
END IF
set fso = Nothing
%>

Medlem sedan mars 20015 287 inlägg
#14

Vad var det för fel på denna tråd, http://www.webforum.nu/showthread.php?s=&threadid=43964 ?

Medlem sedan apr. 2002123 inlägg
#15

Fick inte löst problemet på den strängen, så jag tänkte börja. Detta pga att de som inte läst föregående tråd skulle kunna lösa mitt problemet på basis av den nya informationen om problemet som jag bidrog med i mitt första inlägg.

Medlem sedan juni 200032 967 inlägg
#16

Hej!

Jag citerar kjell:

dubbelpostningar i allmänhet medför medarbete för oss andra som ska administrera forumet.
Det står inte i reglerna att man inte får dubbleposta eftersom vi förmodar att detta är en oskriven lag på alla forum. Vi ska dock se till att även den texten finns med i fortsättningen.

Jag slår ihop trådarna till en så har vi allt som rör samma problem på samma ställe.

Mvh,
@nders
Forumledare

Medlem sedan juni 200032 967 inlägg
#17

Visa hela koden, som den ser ut nu. Du har ingen _ som ligger och skräpar någonstans utanför asp-blocken?

Medlem sedan apr. 200224 inlägg
#18

Hej Daniel
Jag har tittat på det nu.
Det där tecknet förstår jag mig inte på, mer än att det "inte finns". För om jag kopierar det och klistrar in, skrivs det som ett mellanslag.
Problemet har dock inget med detta att göra.
Problemet är att "fso.FileExists(path)=false" p.g.a att sökvägen tydligen går till C:
Skriv "Response.Write(fso.GetAbsolutePathName(path))" så får du var den söker.
Jag vet inte hur man får sökvägen att ändras till "localhost".
Kanske någon annan som vet?

256 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)