Entra

View Full Version : [VBScript] Modifica elemento array


Kyuzo8888
01-12-2011, 13:22
Salve ragazzi, la mia intenzione č quella di leggere un file di testo , inserire le righe su un array, fare le modifiche all'array e rinfilare il tutto nel file.
Sto provando questo codice:


strFileName = "C:\Users\alessandro.cassis\Desktop\export.xml"


Dim objFSO, strTextFile, strData, strLine,arrLines,cont


Set objFSO = CreateObject("Scripting.FileSystemObject")

strData = objFSO.OpenTextFile(strFileName,ForReading).ReadAll
arrLines = Split(strData,vbCrLf)

Dim i
i = 0

Dim app,leng,appoggio

For i = 0 To UBound(arrLines) - 1

If InStr(arrLines(i),"<Area_Specialistica") <> 0 Then 'al suo interno avviene la cancellazione di quella riga

arrLines(i) = Replace(arrLines(i), "<Area_Specialistica nil=" & chr(34) & "true" & chr(34) & "/>", "")
End If

If InStr(arrLines(i),"info") > 0 Then 'al suo interno elimino l'attributo info del tag Person
leng= InStr(arrLines(i),"info")
appoggio = Left(arrLines(i),leng-1)
arrLines(i)= Replace(arrLines(i), arrLines(i), appoggio & " >")
End If

Next





strLine = Join(arrLines)

Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.WriteLine strLine



Set objFSO = Nothing





Non da errore, il file di testo originale č in questo formato :


<Persone>
<Person id="numeroid" info="QUALCOSA QUALCOSA">
<E-mail>email@email.it</E-mail>
<Nome>NOME</Nome>
<Cognome>COGNOME</Cognome>
<Stato>Attivo/Disattivo</Stato>
<Tipo_Dipendente>POSIZIONE</Tipo_Dipendente>
<Codice_Fiscale>CODI</Codice_Fiscale>
<Telefono>numero di telefono</Telefono>
<Area_Specialistica nil="true"/>
<Valido_dal>DATA INIZIO</Valido_dal>
<Valido_fino_al>DATA FINE</Valido_fino_al>
<vip>vero/false</vip>
</Person>
<Person id="numeroid" info="QUALCOSA QUALCOSA">
<E-mail>email@email.it</E-mail>
<Nome>NOME</Nome>
<Cognome>COGNOME</Cognome>
<Stato>Attivo/Disattivo</Stato>
<Tipo_Dipendente>POSIZIONE</Tipo_Dipendente>
<Codice_Fiscale>CODI</Codice_Fiscale>
<Telefono>numero di telefono</Telefono>
<Area_Specialistica nil="true"/>
<Valido_dal>DATA INIZIO</Valido_dal>
<Valido_fino_al>DATA FINE</Valido_fino_al>
<vip>vero/false</vip>
</Person>
</Persone>




Ma eseguendo il codice invece di editare quelle due righe con il replace, mi fa uscire fuori un file cosė :



<Persone>
<Person id="13876" >


Quindi immagino che invece di editare solamente quell'elemento dell'array lo edita tutto..
Dove sbaglio ??

GRAZIE