n° 185
Maggio/Giugno 2013
Maggio 24, 2013, 11:03:48 am *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  

* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: [VBScript] Modifica elemento array  (Letto 2447 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
Kyuzo88
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 78


Mostra profilo
« inserita:: Dicembre 01, 2011, 03:22:53 pm »

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:

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 :

Codice:
<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ì :

Codice:

    <Persone>
    <Person id="13876"  >

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

GRAZIE
Registrato
luky1964
Newbie
*

Karma: +1/-0
Scollegato Scollegato

Messaggi: 40


Professionista I.T. da 20 anni...


Mostra profilo E-mail
« Risposta #1 inserita:: Dicembre 01, 2011, 11:33:43 pm »

Salve.
Per come sono abituato a risolvere un problema ed a programmare io in VB, userei il seguente approccio.
Perchè andare ad infangarsi nel caricare le righe di un file testo in un vettore, per poi andarle ad editare e quindi riscriverlo in un file...?! Quando si può più semplicemente aprire il file da modificare in lettura, aprire quello in output in scrittura, iniziare un ciclo di lettura del primo, verificare se la riga è da tenere e se SI, riscriverla sul nuovo file e se NO leggere una nuova riga...e così via fino a fine file...?!
Io farei così.
Saluti.
Registrato

Saluti dall'alta-Maremma!
Kyuzo88
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 78


Mostra profilo
« Risposta #2 inserita:: Dicembre 05, 2011, 10:57:56 am »

mmm il problema è che devo spostare delle righe da una posizione all'altra per cambiare l'ordine..
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2011 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



Links to Page