Modifica variabile stringa



  • Modifica variabile stringa
    di Roby73 (utente non iscritto) data: 04/03/2011

    Devo importare un file testo contenente dei codici. alcuni, e non tutti, contengono il simbolo "/" in posizioni diverse. la devo sostituire con un altro simbolo qualsiasi. ho ideato questo codice, e funziona, ma mi sembra un pò complesso. potete suggerirmi una via più semplice ?
     
        Open Filein1 For Input As #1
        Dim CodLine, DescLine, PrezzoLine
        Do While Not EOF(1)                                                    ' Ripete fino alla fine del file.
          Input #1, CodLine, DescLine, PrezzoLine                              ' Assegna la riga a una variabile.
          PosBarraCodLine = InStr(CodLine, "/")                                ' Ricerca la posizione della barra dentro la stringa
          If PosBarraCodLine <> 0 Then
             InizioCodLine = Left(CodLine, PosBarraCodLine - 1)                ' Estrapola il codice prima della barra
             LungCodLine = Len(CodLine)                                        ' Determina la lunghezza di tutta la stringa
             FineCodLine = Right(CodLine, LungCodLine - PosBarraCodLine)       ' Estrapola il codice dopo la barra
             CodLine = InizioCodLine & "_" & FineCodLine                       ' Crea il nuovo codice
          End If
          Range(CodLine).Value2 = PrezzoLine                                   ' Scrive il prezzo nella cella
        Loop
        Close #1                                                               ' Chiude il file.



  • di Mik (utente non iscritto) data: 05/03/2011

    Ciao

    penso che si può sostituire gran parte del codice con l'instruzione

    replace()
     
        Open Filein1 For Input As #1
        Dim CodLine, DescLine, PrezzoLine
        Do While Not EOF(1)                                                    ' Ripete fino alla fine del file.
          Input #1, CodLine, DescLine, PrezzoLine                              ' Assegna la riga a una variabile.
          
          CodLine = Replace(CodLine, "/", "_")                                 'restituisce la stringa CODLINE
                                                                               'sostituendo tutte le occorrenze '/' con '_'
          Range(CodLine).Value2 = PrezzoLine                                   ' Scrive il prezzo nella cella
        Loop
        Close #1                                                               ' Chiude il file.
    



  • di Roby73 (utente non iscritto) data: 05/03/2011

    Grazie, è un ottima soluzione, avevo provato anch'io il comando replace visto sul help, ma con un metodo diverso e senza avere lo stesso risultato.