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.
17 svar · 361 visningar · startad av danielpetersson
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.
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.
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.
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"]'
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!?!?
Då ligger _ inte i path (vilket jag aldrig trodde heller). Koden tar bara bort g:et från jpg
Kan du visa mer kod?
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
%>
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
%>
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
??????
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
Det måste ju komma nån annanstans ifrån........visa lite mer kod :)
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
%>
Vad var det för fel på denna tråd, http://www.webforum.nu/showthread.php?s=&threadid=43964 ?
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.
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
Visa hela koden, som den ser ut nu. Du har ingen _ som ligger och skräpar någonstans utanför asp-blocken?
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?