l-boyMedlem sedan juli 2003221 inlägg Använder en komponent som heter ABC PDF. En funktion i denna returnerar en "Array of Strings".
Dim tagIds
tagIds = theDoc.HtmlOptions.GetTagIDs(theID)
response.write ubound(tagIds)&"<br>"
response.write isarray(tagIds)
Ger mig:
5
true
Betyder inte detta att jag skall kunna köra en response.write tagIds(1) utan problem? Får nämligen felmeddelandet " Inkompatibla typer: 'tagIds' " ..
Vad är tokigt?
EclipseMedlem sedan juli 20003 825 inlägg kolla varType i manualen.
Dim tagIds
tagIds = theDoc.HtmlOptions.GetTagIDs(theID)
response.write varType (ubound(tagIds) ) &"<br>"
response.write varType( isarray(tagIds) )
OK, eller denna då!? quick and dirty...
IF tagIds(0) <> "" THEN response.write tagIds(0) & "<BR>"
IF tagIds(1) <> "" THEN response.write tagIds(1) & "<BR>"
IF tagIds(2) <> "" THEN response.write tagIds(2) & "<BR>"
IF tagIds(3) <> "" THEN response.write tagIds(3) & "<BR>"
IF tagIds(4) <> "" THEN response.write tagIds(4) & "<BR>"
l-boyMedlem sedan juli 2003221 inlägg vartype(tagids) = 8200 ...
EclipseMedlem sedan juli 20003 825 inlägg http://www.w3schools.com/vbScript/func_vartype.asp
om du har ett nummer som inte finns i listan så blir det problem...
***
Satsa på en åtta!
8 = vbString - Indicates a string
Cstr( tagIds(1) )
l-boyMedlem sedan juli 2003221 inlägg 8200:
returns 8192 + VarType(array_element).
8 = vbString - Indicates a string
Så det stämmer juh...
EclipseMedlem sedan juli 20003 825 inlägg Det har du rätt i! Då är du på rätt spår!
l-boyMedlem sedan juli 2003221 inlägg
Eclipse skrev:
kolla varType i manualen.
Dim tagIds
tagIds = theDoc.HtmlOptions.GetTagIDs(theID)
response.write varType (ubound(tagIds) ) &"<br>"
response.write varType( isarray(tagIds) )
OK, eller denna då!? quick and dirty...
IF tagIds(0) <> "" THEN response.write tagIds(0) & "<BR>"
IF tagIds(1) <> "" THEN response.write tagIds(1) & "<BR>"
IF tagIds(2) <> "" THEN response.write tagIds(2) & "<BR>"
IF tagIds(3) <> "" THEN response.write tagIds(3) & "<BR>"
IF tagIds(4) <> "" THEN response.write tagIds(4) & "<BR>"
Inkompatibla typer: 'tagIds'
/pdf/default.asp, line 12
#12 = IF tagIds(0) <> "" THEN response.write tagIds(0) & "<BR>"
l-boyMedlem sedan juli 2003221 inlägg
Eclipse skrev:
Cstr( tagIds(1) )
Inkompatibla typer: 'tagIds'
Peter SMedlem sedan dec. 20025 483 inlägg Kan du loopa över arrayen med For Each?
For Each item In tagIds
Response.Write item & "<br>"
Next
l-boyMedlem sedan juli 2003221 inlägg Nope.
"Inkompatibla typer" på första raden.
SPiNMedlem sedan mars 20007 896 inlägg Du verkar inte få någon array tillbaka från GetTagIDs(). Titta på typen av den:
Response.Write TypeName(tagIds)
If TypeName(tagIds) = "String" Then
Response.Write tagIds
End If
l-boyMedlem sedan juli 2003221 inlägg Response.Write TypeName(tagIds)
ger
String()
Men
Response.Write tagIds
Funkar inte.
(En ohanterad datatyp påträffades.)
Peter SMedlem sedan dec. 20025 483 inlägg Du verkar inte vara ensam om problemet i alla fall: http://forums.devshed.com/asp-programming-51/type-mismatch-when-working-with-arrays-130919.html.
Problemet är att det är en String() som returneras medan VBScript vill ha en variant.
EclipseMedlem sedan juli 20003 825 inlägg Ja... sista posten var intressant, citerad nedan.
Men hur gör man en EN-dimensionell array till en TVÅ-dimensionell? Utan att skriva siffror och bokstäver för hand!?
Ja.. det är i alla fall inte min hjärna kapabel att räkna ut i skrivande stund!
Public Function Test() As Variant
Dim f(0, 3) As Variant ' f(3) replaced here with f(0,3)
f(0, 1) = "a"
f(0, 2) = "b"
f(0, 3) = "c"
Test = f
End Function
Peter SMedlem sedan dec. 20025 483 inlägg Förmodligen måste man skriva en wrapper för abcpdf-metoden som ser ut enligt ovan.