perso fra i loop

  • Creatore Discussione Creatore Discussione gensole
  • Data di inizio Data di inizio

gensole

Nuovo Utente
22 Mar 2005
2
0
0
sapete dirmi dove sbaglio??????in pratica ho delle righe in una file di testo del tipo

'***<(nome) qui c'è altro testo
'qui ancora altro testo***>
praticamente quello che ho tra ( ) lo metto in un campo e tutto quello che viene dopo fino a ***>
mi sono perso un pò con i loop penso ma non riesco proprio ad uscirne.
mi controlleresti il perchè?


code:--------------------------------------------------------------------------------
%
Function commenti(txt)
'Dichiarazione delle variabili
dim obj_Connection
dim obj_Recordset
dim sql_query
dim vet,appoggio, nomeFunzione, utilitaFunzione
'Creo la connessione al db
CreateDatabaseConnection "sql","supportotecnico",obj_connection,obj_recordset
'Apertura del file
'ilfile=server.MapPath(txt)
set FSO=server.CreateObject("Scripting.FileSystemObject")
set file=FSO.GetFile(txt)
set ilfile=file.OpenAsTextStream(1,-2)
counter = 0
'Controllo riga per riga se compare Nome Funzione e Utilità Funzione
do while not ilfile.AtEndOfStream
counter = counter+1
illine = ilfile.readline
vet = illine
appoggio = vet
if instr(vet,"'***<") > 0 then
loop2=true
end if
do while loop2
if instr(vet,"***>") > 0 then
loop2 = false
end if
loop
if nomefunzione="" then
nomefunzione=ExtractStr(vet,"(",")",false)

else
utilitaFunzione=ExtractStr(appoggio,
")","***>",false)

ArrayField(0)=2
ArrayField(1)="nome"
Arrayfield(2)="utility"
ArrayValue(0)=2
ArrayValue(1)= nomefunzione
Arrayvalue(2)= utilitafunzione
ArrayType(0)=2
Arraytype(1)=202
arraytype(2)=202
'inserisce i campi nel db
insertdb "T_Header_Funzioni" ,arrayfield,arrayvalue,arraytype,obj_con
nection,obj_recordset
end if

'reinizializzo le variabili
nomeFunzione = ""
utilitaFunzione = ""
loop
'Chiudo il tutto
ilfile.close
set ilfile = nothing
set file = nothing
End function
%>
<%
Function ExtractStr(s, strDa, strA, setTrim)
PosDa = InStr(s, strDa)
PosA = InStr(s, strA)
If PosA > 0 And PosDa > 0 Then
s = Mid(s, PosDa + Len(strDa), PosA - PosDa - Len(strDa))
If IsNull(setTrim) = False And setTrim = True Then
ExtractStr = LTrim(RTrim(s))
Else
ExtractStr = s
End If
Else
ExtractStr = ""
End If
End Function
%>
--------------------------------------------------------------------------------

grazie anticipatamente
 
perdonami, al dilà del kilometro di codice, non ho assolutamente capito il discorso

'***<(nome) qui c'è altro testo
'qui ancora altro testo***>
praticamente quello che ho tra ( ) lo metto in un campo e tutto quello che viene dopo fino a ***>
 
Mi pare che tu voglia fare un specie di parser?cioè dato un file di testo formattato in maniera precisa estrai delle informazioni che poi utilizzerai in vari modi.......almeno è quello che mi è sembrato di capire dalle righe di commento del codice.....adesso gli do un occhiata e magari ti faccio sapere.....

dopo una prima analisi del codice........

non ho ancora capito dove possa essere l'errore, ma (non voglio dire che hai scritto del brutto codice) hai sbagliato il modo di avvicinarti al problema: tu vuoi estrarre del testo da un file e poi utilizzare ciò che recuperi per inserirlo in un db? perchè non usi asp+xml?
invece di utilizzare una formattazione 'approssimativa' puoi utilizzare l'xml;dopodichè tramite codice asp estrai tutti i vari nodi dal file xml.....oltretutto in questo forum nella sezione 'Linguaggi estendibili' c'è un interessante guida su questo argomento...non volevo criticare il tuo lavoro erano solo dei consigli.


ho una domanda: programmi anche in c/c++? il modo che hai usato per risolvere il problema mi ricorda molto quello che si usa in c/c++.....
 
Ultima modifica:
Function commenti(txt)
'Dichiarazione delle variabili
dim obj_Connection
dim obj_Recordset
dim sql_query
dim vet,appoggio, nomeFunzione, utilitaFunzione
'Creo la connessione al db
CreateDatabaseConnection "sql","supportotecnico",obj_connection,obj_recordset
'Apertura del file
'ilfile=server.MapPath(txt) Che ne dici di togliere la virgoletta qui?
set FSO=server.CreateObject("Scripting.FileSystemObject")
set file=FSO.GetFile(txt)
set ilfile=file.OpenAsTextStream(1,-2)
counter = 0
'Controllo riga per riga se compare Nome Funzione e Utilità Funzione
do while not ilfile.AtEndOfStream
counter = counter+1
illine = ilfile.readline
vet = illine
appoggio = vet
if instr(vet,"'***<") > 0 then
loop2=true
end if
do while loop2
if instr(vet,"***>") > 0 then
loop2 = false
end if
loop
if nomefunzione="" then
nomefunzione=ExtractStr(vet,"(",")",false)

else
utilitaFunzione=ExtractStr(appoggio,
")","***>",false)

ArrayField(0)=2
ArrayField(1)="nome"
Arrayfield(2)="utility"
ArrayValue(0)=2
ArrayValue(1)= nomefunzione
Arrayvalue(2)= utilitafunzione
ArrayType(0)=2
Arraytype(1)=202
arraytype(2)=202
'inserisce i campi nel db
insertdb "T_Header_Funzioni" ,arrayfield,arrayvalue,arraytype,obj_con
nection,obj_recordset
end if

'reinizializzo le variabili
nomeFunzione = ""
utilitaFunzione = ""
loop
'Chiudo il tutto
ilfile.close
set ilfile = nothing
set file = nothing
End function
%>
<%
Function ExtractStr(s, strDa, strA, setTrim)
PosDa = InStr(s, strDa)
PosA = InStr(s, strA)
If PosA > 0 And PosDa > 0 Then
s = Mid(s, PosDa + Len(strDa), PosA - PosDa - Len(strDa))
If IsNull(setTrim) = False And setTrim = True Then
ExtractStr = LTrim(RTrim(s))
Else
ExtractStr = s
End If
Else
ExtractStr = ""
End If
End Function
%>


e poi....XML??? Per chinon lo sapesse XML lo sta usando microsoft per Win LongHorn......risultato NON FUNZIONA NULLA!!!!!
 

Discussioni simili