Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    16

    [VB] Creare o modificare un file txt

    Salve a tutti vorrei creare un programma in Visual Basic che cerca se esiste un file txt, se esiste vi inserisca una stringa al fondo del file, se non esiste crea un nuovo file e vi scrive all'interno. Vi faccio vedere ciò che ho scritto io che funziona però solo se il file non esiste

    codice:
    Public Sub Main()
     	Dim objTextFile
     	' Definisco una variabile contenente il file da verificare
     	Dim mioFile
     	mioFile = "C:/prova/file.txt"
      	' Definisco e creo l'oggetto FileSystemObject
     	Dim objFile 	Set objFile = CreateObject("Scripting.FileSystemObject")
      	' Verifico con FileExist se il file esiste
     	If objFile.FileExists(mioFile) Then
       		Set objTextFile = objFile.OpenTextFile(mioFile)
     	Else
     		Set objTextFile = objFile.CreateTextFile(mioFile)
     	End If
    
      	objTextFile.WriteLine Date()
     	objTextFile.WriteLine Time()
     	objTextFile.WriteLine "-------" 
     	' Faccio pulizia...
            Set objFile = Nothing
     	objTextFile.Close
    End Sub
    Qualcuno saprebbe aiutarmi non so proprio dove sbattarci la testa... Vi prego è molto urgente. Cosa sbaglio??? Dove sbaglio???

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: [VB] Creare o modificare un file txt

    Piu' semplicemente ...

    codice:
    Public Sub Main()
        Dim fh As Integer
        fh = FreeFile
        Open "C:\prova\file.txt" For Append As fh
        Print #fh, Date & vbCrLf & Time & vbCrLf & "-------"
        Close fh
    End Sub
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    16
    Innanzi tutto grazie mille del super accorpamento del programmino, ora ti chiedo una piccola precisazione se fosse possibile. Questo è il mio programma modificato:
    codice:
    Public Sub Main()
         Dim fh As Integer
         fh = FreeFile
         Dim nomeFile As String
         nomeFile = "C:\prova\" & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & ".txt"
         Open nomeFile For Append As fh
         Print #fh, "CODICE: " & STRINGA1 & " - RISULTATO: " & STRINGA2 & " - COPPIA: " & VALORE1 & " - ALTEZZA: " & VALORE2
         Close fh
     End Sub
    Se fosse possibile vorrei che lui mi creasse o cercasse la cartella di dove inserire il file facendola decidere all'utente tramite variabile.
    Nel senso in una varibile chiamata directory gli dico prova
    lui controlla se c:\prova esista se esiste inserisce li dentro il file, se non esiste la cartella la crea e gli inserisce il file, ho letto che esistono due funzioni:
    FolderExists(strPath As String) As Boolean
    CreateFolder(strPath As String)

    ma non riesco a far funzionare il programma se le inserisco in questo modo:
    codice:
    Public Sub Main()
         Dim fh As Integer
         fh = FreeFile
         Dim nomeFile As String
         If (Not FolderExists("C:\prova"))
          	 CreateFolder("C:\prova")
         End If
         nomeFile = "C:\prova\" & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & ".txt"
         Open nomeFile For Append As fh
         Print #fh, "CODICE: " & STRINGA1 & " - RISULTATO: " & STRINGA2 & " - COPPIA: " & VALORE1 & " - ALTEZZA: " & VALORE2
         Close fh
     End Sub
    perché mi dice "Previsto una matrice già dimensionata" all'altezza di FolderExists("C:\prova")
    Come mai cosa sbaglio???

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    16
    Che stupido che sono mi ero dimenticato un pezzo ora funziona bastava correggere con questo pezzo
    codice:
    Dim nomeFile, nomeCartella As String
        nomeCartella = "prova"
        Set FSO = CreateObject("Scripting.FileSystemObject")
        If (Not FSO.FolderExists("C:\" & nomeCartella)) Then
        	FSO.CreateFolder("C:\" & nomeCartella)
        End If
    Ed il gioco è fatto, grazie mille oregon sei stato davvero gentilissimo e rapidissimo nella risposta
    Ho usato nomeCartella solo perché poi vi verrà passata tramite variabile esterna e quindi basta che poi modifico il nome della variabile e tolgo la dichiarazione iniziale, ma solo così riuscivo a testarla.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Come prima, non e' necessario che usi la CreateObject e l'oggetto FSO.

    Molto piu' semplicemente (e con un codice piu' leggero) puoi scrivere

    codice:
       Dim nomeCartella As String
       nomeCartella = "prova"
       On Error Resume Next
       MkDir "C:\" & nomeCartella
       On Error Goto 0
    
       ...
    e ricorda che scrivere

    Dim nomeFile, nomeCartella As String

    NON equivale a scrivere

    Dim nomeFile As String, nomeCartella As String
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,462

    Moderazione

    Originariamente inviato da chicco83
    Salve a tutti vorrei creare un programma in Visual Basic che cerca se esiste un file txt, se esiste vi inserisca una stringa al fondo del file, se non esiste crea un nuovo file e vi scrive all'interno.
    La versione del linguaggio, visto che qui ne trattiamo molte, va indicata nel titolo.
    Questo l'ho corretto io, tienilo a mente per le future discussioni.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.