Newsgroup: it.comp.www.asp
Titolo: Nuovo problema con le stringhe.

Ho creato un form formato da una casella di testo e da una select. l'utente 
inserisce dei dati che vengono manipolati in modo da ottenere una unica 
stringa (che ho chiamato 'risultante').
a questo punto punto, viene aperto un file di testo composto da tante righe 
quanti sono i miei record e che vanno a popolare un array.
adesso dovrei leggere la stringa 'risultante' e confrontarla con tutti i 
record dell'array per ricavare solo la riga la cui parte iniziale sia 
proprio 'risultante' per poter poi far apparire a video la parte destra che 
non compresa nella stringa.
'leggo tutte le righe
linee = Instream.ReadAll()
' salvo nell'array
linee = Split (linee, VbCrLf)
response.write(filter(linee, risultante))
ma mi restituisce un errore
Tipo di errore:
Oggetto risposta, ASP 0106 (0x80020005)
È stato individuato un tipo di dati privo di handle.
e che vor dì?? ho cercato un po in giro ma non ho trovato nulla a riguardo.
mi dareste una mano a capire? come posso risolvere il problema?
p.s.: ho cominciato a leggere le guide suggeritemi da Lorenzo e le ho 
trovate piuttosto utile ma....purtroppo per voi poco efficaci :P
per lorenzo: continuerò a studiare....l'asp non è semplicissimo ma io ho la 
testa dura!
grazie a tutti e ciao
Davide 

 problema?
Mi sembre un problema derivato dall'apertura del file. Puoi postare altre 
parti del codice? Che oggetti è "risultante"?
Ciao
-- 
AZ [Microsoft - .NET MVP]
Mia Home page: 
http://ciclismo.sitiasp.it
Asp.Net community: 
http://www.aspitalia.com
Il mio blog: 
http://blogs.aspitalia.com/az
 

 response.write(filter(linee, risultante))
Non ho capito tanto bene però qui c'è un errore di sintassi... cerchi
di passare al metodo write un array! Dovresti fare qualcosa del tipo:
a=Filter(linee,risultante)
for i=0 to UBOUND(a)
   document.write(a(i) & "<br>")
next i
Credo... :)

 next i
 Trovato!!!!
facendo più attenzione, mi sono accorto che mi è stato suggerito 
document.write....sostituendo 'document' con 'response' ho ottenuto la 
stringa che tanto bramavo!!!
grazie ancora e buona giornata!!!
Davide 

Intanto grazie per le risposte. Ho provato come suggerito da Andrea, ma mi 
da un errore dopo il next (prevista fine istruzione).
vi posto una parte del codice, quella che a mio parere potrebbe contenere 
l'errore.
Dim FileObject
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
dim risultante ' valore globale da cercare
dim valore  ' valore del form da cercare
dim range  ' risultante della select
dim strUrl  ' pagina richiedente la ricerca
dim strPath
dim risultato ' stringa da cercare
valore=request.form("cercare")
range=request.form("range")
strUrl = Request.ServerVariables("http_referer")    'lo stesso file asp 
viene utilizzato da più pagine e mi serve sapere quindi quale ha effetuato 
la richiesta
strPath = Split(strURL, "/r")
risultato =left(strPath(Ubound(strPath)),3)
select case range
case 1
'una serie di cicli if then che danno origine a risultante
case 2
'seconda serie di cicli if then che danno origine a risultante
case 3
'terza serie di cicli if then che danno origine a risultante
end select
'LEGGO IL FILE
Set InStream = 
FileObject.OpenTextFile(Server.MapPath("db.txt"),1,False,False)
linee = Instream.ReadAll()
' SALVO NELL'ARRAY
linee = Split (linee, VbCrLf)
'se qui chiedo di stampare [response.write(risultante)] a video risultante, 
non ho problemi
%>
ma io vorrei che risultante venga confrontato con le stringhe di db e quando 
la trova, mi risponde con la stringa intera.
per essere più chiaro, le stringhe che compongono db.txt sono così:
12k1w8q0001
10m1w8q0021
mentre la stringa risultante è:
12k1w8 (per valore =12 e range = k)
10m1w8 (per valore =10 e range = m)
quindi, essendo 'risultante' univoca nel file db.txt, il risultato finale 
della mia ricerca dovrà essere q0001 (per questo, utilizzerò right).
mi auguro di essere stato chiaro e che riusciate ad aiutarmi.
ciao e a risentirci presto!
Davide 

Scusa ovviamente era Response l'oggetto e non Document, ho fatto un pò
di confusione con JS.
Cmq finalmente ho capito cosa vuoi fare...
dim objFSO
dim objApriFile
set objFSO = Server.CreateObject("Scripting.FileSystemObject")
set objApriFile = objFSO.OpenTextFile("db.txt", 1, true)
esci=objApriFile.AtEndOfStream
do until esci
    Linea=objApriFile.readLine()
    if Left(Linea, 6)=risultante then
         esci=true
         valore=Left(Linea, 5)
    else
         esci=objApriFile.AtEndOfStream
    end if
loop
Response.Write valore & "<BR>"
objApriFile.close
set objApriFile=Nothing
set objFSO=Nothing
Spero di non aver commesso errori!!! CIAOO

intanto, ancora grazie per l'attenzione.
ho provato a fare cio che mi ha detto alex, ma senza ottenere i risultati 
sperati. per capire cosa succedeva, ho modificato una riga :
Response.Write valore & "<BR>"
è diventata:
Response.Write ("a " & vale & "<BR>" & "b " & Linea & "<BR>" & "c " & 
risultante & "<BR>" )
valore è gia utilizzata per poter leggere dal form quanto inserito 
dall'utente nella casella di testo.
a prescindere dal valore inserito nel form, vale mi restituisce il niente 
più assoluto (sigh), linea è uguale (non credo sia un caso) all'ultima riga 
del mio file db.txt mentre risultante è esattamente la riga che io cerco 
all'interno del mio file.
ho provato a modificare in vari modi il file.asp ma non sono mai riuscito a 
cavarne un ragno dal buco.
intanto mi chiedo: è un caso se linea è sempre uguale all'ultimo record? in 
ogni caso, come mai vale mi rende il vuoto spinto??
ah, ancora una cosa che potrebbe essere utile.
vi riporto una delle righe che origina 'risultante' in quanto il risultato 
finale mi garba, ma non vorrei che asp non lo riconoscesse come valido:
risultante = valore*1000 + "k" + risultato
dove valore viene moltiplicato o diviso a seconda del valore della select.
quando scrivo 'response.write (risultante) mi scrive 'valore' moltiplicato 
per 1000 poi k ed infine risultato
per esempio: 10k1w8
Infine...credete proprio che io debba ricorrere al più classico database 
access? avendo circa un migliaio di record, non mi garba molto l'idea di 
dover reinserire tutto in un nuovo database per il quale non ho neppure il 
programma installato...
mi rimetto a voi anche perchè è la mia prima esperienza in asp.
ciao e grazie ancora
Davide