48 messaggi dal 22 febbraio 2004
Ciao a tutti!
ho un problema con le array!
quello che devo fare è prelevare dei nomi di file da un db e da una cartella. e poi fare il confronto per vedere i file che mancano!

ho gia pero degli errori nel farmi dare le liste sull'arry2:

response.Write("<table border='1'>")
response.Write("<tr>")
response.Write("<td>")


i=0
redim Preserve arry1(i) '' Inizializzi a 0
do while not rs01.EOF
i=i+1
redim Preserve arry1(i) ''Lo rendi grande quanto i
arry1(i)=rs01.Fields.Item("IMAGE_FILE").Value
'response.Write(rs01.Fields.Item("IMAGE_FILE").Value)
response.Write(arry1(i)&"<br>")
rs01.movenext
loop
rs01.close()
set rs01 = nothing
response.Write("</td>")
response.Write("<td>")


Dim objFso, folder, files, file
Set objFso=Server.CreateObject("scripting.FileSystemObject")

Set folder= objFso.getFolder("c:\inetpub\wwwroot\miosito\foto")
Set files=folder.files

y=0
redim Preserve arry2(y)
for each file in files
y=y+1
arry2(y)=file.name
response.Write(arry2(y)&"<br>")

next

response.Write("</td>")
response.Write("</tr>")
response.Write("</table>")


l'errore è:

Microsoft VBScript runtime error '800a0009'

Subscript out of range: 'y'

/miosito/listafoto.asp, line 45


Grazie!!
48 messaggi dal 22 febbraio 2004
primo problema risolto:

Dim objFso, folder, files, file
Set objFso=Server.CreateObject("scripting.FileSystemObject")

Set folder= objFso.getFolder("c:\inetpub\wwwroot\miosito\foto")
Set files=folder.files

y=0
redim Preserve arry2(y)
for each file in files
y=y+1
redim Preserve arry2(y)
arry2(y)=file.name
response.Write(arry2(y)&"<br>")

next


adesso ho i 2 risultati, cioè la lista dei file nel db, e quella nella cartella dentro le 2 array!

ora devo risolvere il secondo problema: confrontare le 2 liste e farmi dare come risultato i file che mancano!!!
26 messaggi dal 12 marzo 2001
www.albnet.eu
Prova con questo:

<%
For i = 0 to UBound(arry1)
  if CheckExist(arry1(i), arry2) = False then
    response.write arry1(i)
  end if
next

Function CheckExist(strValue, arry2)
  CheckExist = False
  For s = 0 to UBound(arry2)
    if LCase(strValue) = LCase(arry2(s)) then
      CheckExist = True
    end if
  next
End Function
%>


Ciao

Albnet
http://www.albnet.eu/
48 messaggi dal 22 febbraio 2004
grazie! ma non mi da nessun risultato...invece sono sicuro che ci sono delle differenze!

ti metto tutto il codice cosi se hai voglia di darci un'occhiata...ti ringrazio!!

Dim rs01

Set rs01 = Server.CreateObject("ADODB.Recordset")
rs01.ActiveConnection = MM_conn_db_STRING
rs01.Source = "SELECT * FROM images"
rs01.CursorType = 0
rs01.CursorLocation = 2
rs01.LockType = 3
rs01.Open()

response.Write("<table border='1'>")
response.Write("<tr>")
response.Write("<td>")


i=0
redim Preserve arry1(i) '' Inizializzi a 0
do while not rs01.EOF
i=i+1
redim Preserve arry1(i) ''Lo rendi grande quanto i
arry1(i)=rs01.Fields.Item("IMAGE_FILE").Value
response.Write(arry1(i)&"<br>")
rs01.movenext
loop
rs01.close()
set rs01 = nothing
response.Write("</td>")
response.Write("<td>")


Dim objFso, folder, files, file
Set objFso=Server.CreateObject("scripting.FileSystemObject")

Set folder= objFso.getFolder("c:\inetpub\wwwroot\miosito\foto")
Set files=folder.files

y=0
redim Preserve arry2(y)
for each file in files
y=y+1
redim Preserve arry2(y)
arry2(y)=file.name
response.Write(arry2(y)&"<br>")

next

response.Write("</td>")
response.Write("<td>")
response.Write("ciao")

For i = 0 to UBound(arry1) 
if CheckExist(arry1(i), arry2) = False then 
response.write arry1(i) 
end if 
next 

Function CheckExist(strValue, arry2) 
CheckExist = False 
For s = 0 to UBound(arry2) 
if LCase(strValue) = LCase(arry2(s)) then 
CheckExist = True 
end if 
next 
End Function 

response.Write("</td>")
response.Write("</table>")

48 messaggi dal 22 febbraio 2004
tra l'altro se non è un problema ci sarebbe una puntualizzazione!
ovvero: dovrei controllare i file nel database e vedere se nella cartella ci sono tutti o ne mancano (in riferimento solo a quelli del db)...nel senso che se nella cartella ce ne sono di + a me non importa! basta che corrispondano con quelli del db!
se la cosa è gia stata impostata cosi e non mi da nessun risultato potrebbe essere giusto perche effettivamente non ne mancano! ma sono sicuro che nella cartella ce ne sono in +!!
48 messaggi dal 22 febbraio 2004
qualcosa mi sfugge!!

con questo codice:
Function CheckExist(strValue, folderfile) 
CheckExist = False 
For y = 0 to UBound(folderfile) 
if LCase(strValue) = LCase(folderfile(y)) then 
CheckExist = True 
end if 
next 
End Function 



For i = 0 to UBound(dbfile) 
if CheckExist(dbfile(i), folderfile) = False then 
response.write dbfile(i)&"<br>" 
end if 
next 


non mi trova nessun file!
ma sono sicure che nella cartella ci sono + file che nel db! come faccio per farmeli dare??
26 messaggi dal 12 marzo 2001
www.albnet.eu
Questa sera guardo... ora sto lavorando.


Albnet
http://www.albnet.eu/
26 messaggi dal 12 marzo 2001
www.albnet.eu
Così com'è, ti dice se nella cartella mancano dei file presenti nella tabella. Se sostituisci con questo codice, fai anche l'altro controllo e sai anche quanti file sono presenti che mancano nella tabella.

<%Dim rs01 

Set rs01 = Server.CreateObject("ADODB.Recordset") 
rs01.ActiveConnection = MM_conn_db_STRING 
rs01.Source = "SELECT * FROM images" 
rs01.CursorType = 0 
rs01.CursorLocation = 2 
rs01.LockType = 3 
rs01.Open() 

response.Write("<table border='1'>") 
response.Write("<tr>") 
response.Write("<td>") 

i=0 
do while not rs01.EOF 
  redim Preserve arry1(i) ''Lo rendi grande quanto i 
  arry1(i)=Trim(rs01.Fields.Item("IMAGE_FILE").Value)
   i=i+1
  response.Write(arry1(i)&"<br>") 
rs01.movenext 
loop
rs01.close() 
set rs01 = nothing 

response.Write("</td>") 
response.Write("<td>") 


Dim objFso, folder, files, file 
Set objFso=Server.CreateObject("scripting.FileSystemObject") 

Set folder= objFso.getFolder("c:\inetpub\wwwroot\miosito\foto") 
Set files=folder.files 

y=0 
for each file in files  
  redim Preserve arry2(y) 
  arry2(y)=file.name 
  y=y+1
  response.Write(arry2(y)&"<br>") 
next 

response.Write("</td>") 
response.Write("<td>") 
response.Write("ciao<br>") 

response.write("File presenti nella tabella che mancano nella cartella:<br>")
y=0
For i = 0 to UBound(arry1) 
  if CheckExist(arry1(i), arry2) = False then 
    response.write arry1(i) 
    y=y+1
  end if 
next 
if y=0 then response.write("Nessuno<br>")
response.write("<br>")

response.write("File presenti nella cartella che mancano nella tabella:<br>")
y=0
For i = 0 to UBound(arry2) 
  if CheckExist(arry2(i), arry1) = False then 
    response.write arry2(i) 
    y=y+1
  end if 
next 
if y=0 then response.write("Nessuno<br>")
response.write("<br>")

Function CheckExist(strValue, arrCheck) 
  CheckExist = False 
  For s = 0 to UBound(arrCheck) 
    if LCase(strValue) = LCase(arrCheck(s)) then 
      CheckExist = True 
    end if 
  next 
End Function 

response.Write("</td>") 
response.Write("</table>")
%>


Ciao

Albnet
http://www.albnet.eu/

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.