Newsgroup: it.comp.lang.visual-basic
Titolo: copiare piu file txt in un unico file txt

Ciao ragazzi.
Ho bisogno di una mano. Il mio programma funziona a metà. Sicuramente
secondo me per problemi di memoria e via dicendo.
Ho un form in cui praticamente uso un command chiamato (Crea unico file) ,
una common dialog . ecc.
Qll che segue è il mio programma.
*****************************************************
Private Sub Command1_Click()
 List1.Clear
 CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer
 Me.CommonDialog1.Flags = cdlOFNAllowMultiselect
 CommonDialog1.FileName = ""
 CommonDialog1.Filter = "File di testo (*.txt)|*.txt|Tutti i file *.*|*.*"
 CommonDialog1.DialogTitle = "Selezionare Nome file da aprire"
 CommonDialog1.CancelError = True
On Error GoTo ErrHandler
 CommonDialog1.ShowOpen
 If CommonDialog1.FileName = "" Then
 End If
 
 Path = CurDir
 If Len(Path) <= 3 Then ' Controlla la presenza di
                             caratteri a 2 byte
                   Path = CurDir
 Else
                   Path = CurDir + "\"
 End If
 numcaratteri = Len(Path)
 parola = Trim(Mid(CommonDialog1.FileName, numcaratteri + 1))
 spaziofinale = 1
nomefinale = InputBox("Inserire nome finale dell'unico file")
 For i = 1 To Len(CommonDialog1.FileName)
 spazio = InStr(spaziofinale, Trim(parola), " ")
 If spazio = 0 Then
 parolaestrapolata = Mid(parola, spaziofinale, Len
                                  (CommonDialog1.FileName))
     FileCopy parolaestrapolata, nomefinale & ".txt"
     List1.AddItem parolaestrapolata
     Exit Sub
 Else
    parolaestrapolata = Mid(parola, spaziofinale, spazio - spaziofinale)
    List1.AddItem parolaestrapolata
    FileCopy parolaestrapolata, nomefinale & ".txt"
    spaziofinale = spazio + 1
End If
Next i
ErrHandler:
        'L'utente ha scelto il pulsante Annulla.
    Exit Sub
End Sub
********************************
Mi copia i soli prime tre file selezionati ad esempio ( di piccole
dimensioni) e poi si blocca. Perchè ?
Grazie , non so se son riuscito a spiegarmi..
Andre@
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

     FileCopy parolaestrapolata, nomefinale & ".txt"
Problema numero 3. FileCopy non fa un accodamento ma semplicemente
copia un file su un altro, sovrascrivendolo se esistente.
Suggerisco due indicazioni:
1) Guardati meglio la documentazione di FileCopy e del COmmon Dialog
Control.
2) Impara a utilizzare il debugger.
Ciao!
Luca

 secondo me per problemi di memoria e via dicendo.
No, escluso.

Si blocca in che senso? Errori?
Comunque, due quesiti:
-Che succede se il nome di un file selezionato contiene uno spazio?
-Lo sai che il FileCopy non accoda al file di destinazione, ma lo rende in
ogni caso uguale al file di origine?


Ho risolto il mio programma. Ho capito che filecopy copia tranquillamente il
mio file con un altro file di altro nome.
Ho corretto comunque cosi. Sembra funzionare...
Saltando la prima parte...
***********************************
PAROLA = Trim(Mid(CommonDialog1.FileName, numcaratteri + 1))
 spaziofinale = 1
 numerovettore = 1
  nomefinale = InputBox("Inserire nome finale dell'unico file")
   filefinale = nomefinale & ".txt"
 Open filefinale For Append As #2
 For i = 1 To Len(CommonDialog1.FileName)
 spazio = InStr(spaziofinale, Trim(PAROLA), " ")
 If spazio = 0 Then
     f = FreeFile
    parolaestrapolata = Mid(PAROLA, spaziofinale)
    List1.AddItem parolaestrapolata
    Open Path + parolaestrapolata For Input As #f
    Do While Not EOF(f)
    Line Input #f, riga
    Write #2, riga
    Loop
    Exit Sub
 Else
    f = FreeFile
    parolaestrapolata = Mid(PAROLA, spaziofinale, spazio - spaziofinale)
    List1.AddItem parolaestrapolata
    Open Path + parolaestrapolata For Input As #f
       Do While Not EOF(f)
    Line Input #f, riga
    Write #2, riga
    Loop
      spaziofinale = spazio + 1
    numerovettore = numerovettore + 1
End If
Next i
*****************************************************


Però il mio risultato è corretto. Ottengo realmente la parola estrapolata.
Certo. Perche' Mid ti perdona, utilizzando la dimensione adeguata se
quella indicata ti porta a superare la dimensione della variabile da
cui estrapolare. Se avessi programmato in C - dove questo controllo
non c'e' - avresti la stessa deformazione che ho io... ;-)
Ciao!
Luca