ennesimo problema con fso

daddy lee

Utente Attivo
1 Ott 2005
37
0
0
premetto che se l soluzione è banale, accetto volentieri insulti.
ho il seguente codice:

dim objFSO
dim objApriLettura
dim objApriScrittura
*dim objApriLog
set objFSO = Server.CreateObject("Scripting.FileSystemObject")
set objApriLettura = objFSO.OpenTextFile(Server.MapPath("db.txt"),1,False)
set objApriScrittura = objFSO.OpenTextFile(Server.MapPath("db1.txt"),8,True)
*set objApriLog = objFSO.OpenTextFile(Server.MapPath("log.txt"),8,True)

do until objApriLettura.AtEndOfStream
Linea = objApriLettura.readLine()
if (left(Linea , 6) = left(new_str , 6)) then
objApriScrittura.WriteLine(new_str)
else
objApriScrittura.WriteLine(Linea)
end if
loop

*do until objApriLog.AtEndOfStream
*Riga = objApriLog.readLine()
*if (left(Riga , 4) = "0000") then
*objApriLog.WriteLine("cacchio")
*else
*if (left(Riga , 4) = "pluto") then
*objApriLog.WriteLine("cacchio2")
*else
*if (Riga="") then
*objApriLog.WriteLine("cacchio3")
*end if
*end if
*end if
*loop

'Chiude i file.
objApriLettura.Close
objApriScrittura.Close
*objApriLog.Close

le righe che sono precedute da * (che ovviamente nel codice reale non compaiono) sono quelle incriminate.
in teoria, quando lo script viene eseguito, dovrebbe aprire il file, leggere la prima riga e se i primi caratteri sono 0000 deve scrivere 'cacchio'. se invece sono 'plut' deve scrivere 'cacchio2' altrimenti, se la prima riga risultasse vuota, deve scrivere 'cacchio3'. in sostanza, e se non erro, proprio come per il file chiamato db1.txt.
si puo notare, che il codice relativo al file db1 e quello relativo al file log sono identici ma mentre per il file db1.txt tutto funziona correttamente, per il file log, mi restituisce errore (modalita non valida). :confused:
qual'è l'errore??
ho i permessi di scrittura su tutti i file della cartella. ho fatto varie prove; tra queste, ho tentato di chiudere il file db1 (aperto in scrittura) richiamare il metodo per aprire il file log e scrivere sul file qualcosa di diverso a seconda del testo gia presente. in questo caso, non mi restituisce errore, ma qualunque cosa sia scritta nel file log.txt, lui non reagisce. :incazz:
in attesa di illuminanti spiegazioni, entro nella modalità
--- chicacchiomelohafattofare mode ---
a presto!!!
 
si qualche insulto lo meriti :) scherzo ;)

perchè non utilizzare xml?

perdonami se la mia non è una soluzione ma solo un consiglio: in genere è sempre meglio cercare prima la strada più semplice ed affidabile... ed xml è più semplice ed affidabile del fso!

ciao :byebye:
 
in quanto a meritare insuslti siamo 1-1 :jolly:
no, scherzo anch'io! accetto il tuo consiglio e mi metterò a leggere qualcosa che riguarda l'xml. non l'ho preso in considerazione perchè non lo conosco e non so a cosa serve. se dici possa essere utile, comincerò a darci un'occhiata!
ciao e grazie!!!
 
di sicuro cio che ho letto riguardo l'xml, è troppo poco per poterlo considerare educativo. potresti darmi qulche indizio in più?
in alternativa...qualcuno sa spiegrmi perchè il seguente codice mi restituisce modalità file non valida?

<%
dim objFSO
dim objApriLog
set objFSO = Server.CreateObject("Scripting.FileSystemObject")
set objApriLog = objFSO.CreateTextFile(Server.MapPath("log.txt"),8,True)

Riga = objApriLog.readLine()
do until objApriLog.AtEndOfStream
if (left(Riga , 4) = "0000") then
response.redirect("log.txt")
else
if (left(Riga , 4) = "plut") then
response.redirect("db.txt")
else
if (Riga="") then
objApriLog.WriteLine("cacchio3")
end if
end if
end if
loop

objApriLog.Close

%>

i file che apre o cio che dovrebbe scrivere è ovviamente da sostituire con...qualcosa di più appropriato :D
a risentircelo!!!
 
ho trovato l'ingippo...
non si puo scrivere su un file aperto in lettura e non si puo leggere da un file aperto in scrittura.
e non statemi a dire che era ovvio!!! è ovvio per chi lo sa!:pernacchi
torno a studiare :book:
ciauz
 

Discussioni simili