Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    trasformazione linee di testo in files singoli

    ho la necessita' partendo da una lista nomi incolonnata in un documento xls di trasformare ciascuna riga in altrettanti files che abbiano come nome il nome presente nella riga e come estensione una qualsiasi estenzione basta che sia comune.

    uso un programma di catalogazione files [ disklib ] che memorizza il nome di qualsiasi files
    presente su cd,dvd,hd,memorie esterne. Devo aggiungere alla lista l'elenco dei titoli dei dvd video in mio possesso. Ho creato in excel un elenco dei titoli dei miei dvd video-ho esportato la lista in un file.txt e non so se e' possibile trasformare ogni riga ( e quindi ogni
    titolo ) in altrettanti files ( anche vuoti ) che abbiano il nome di ciascun titolo nella lista.
    SE FOSSE POSSIBILE il programma di catalogazione li leggerebbe e potrei confrontare i titoli
    con gli altri presenti per individuare i doppioni e fare ricerche

    il s.o e' xp pro sp2

    ringrazio in anticipo chiunque mi possa rispondere sull' argomento. qualsiasi idea e' ben accetta. grazie

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Registra questa sub, apri il tuo foglio contenente l'elenco e richaima la macro
    codice:
    Sub creafile()
    ultimariga = ActiveSheet.UsedRange.Rows.Count
    'il mio esempio presuppone che il tuo elenco sia nella colonna A
    ' modificalo secondo le tue esigenze.
    'L'ultima cella viene calcolata tramite la prima riga del codice
    For Each cella In ActiveSheet.Range("A1:A" & ultimariga)
    file = FreeFile()
    'qui metti il path completo della tua cartella contenente il file di excel. L'elenco dei file verrà creato nella stessa cartella
    Open "C:\Documents and Settings\eccetera\" & cella & ".txt" For Output As file
    Next
    End Sub


    edit. Se vuoi creare i file a partire dal tuo file txt salva questo script in un file di testo e rinominalo con estensione vbs

    codice:
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set file = fso.OpenTextFile( "C:\Documents and Settings\tuo_path\tuo_file_elenco.txt", 1, -2)
       
    Do While Not file.AtEndOfStream
      riga = file.ReadLine
      Set nuovo = fso.CreateTextFile("c:\Documents and Settings\tuo_path\" & riga & ".txt", True)   
    Loop
    
    file.Close
       
    Set file = Nothing
    Set fso=Nothing

  3. #3
    per nicola75ss

    ti ringrazio infinitamente dell' aiuto che mi hai dato. ho avuto dei problemi ma il risultato c'e. mi ci sono volute 3 ore: la lista si interrompeva dopo 40 files e non capivo perche'.
    c' erano dei doppioni e quindi nomi identici che interronpevano lo script-poi essendo una lista molto lunga si interrompeva a 256 files .ho rimediato spezzando la lista in piu' parti con piu files di excel. l' help mi consigliava di aumentare il numero di files in config.sys ma in xp
    ho trovato solo un file vuoto. come si fa in xp ad aumentare il massimo numero di files aperti contemporaneamente?
    mi hai fatto proprio un grande favore-

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Avevo provato gli script sia su excel che su file di testo senza doppioni pensando che comunque li avessi già filtrati per elimarli.

    Stamattina ho fatto una prova tramite powershell su un file di testo da 10000 righe con sole 5 voci distinte. Ci sono voluti un paio di minuti ma il risultato è stato quello aspettato, il tutto con una riga di codice

    codice:
    foreach ($line in get-content elenco.txt) {new-item -type file $line".txt" -force}
    il parametro - force evita la restituzione di errori nel caso il file sia già esistente.

    Se poi qualche smanettone di powershell fosse così gentile da spiegarmi perchè il codice funziona come ho scritto mentre mi sarei aspettato di dover scrivere

    $line + ".txt" per concatenare il nome della riga con l'estensione gliene sarei grato.



Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.