+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 7 su 7

App.path con variabile

  1. #1
    L'avatar di jqoobe
    jqoobe non è in linea Novello
    Post
    41
    Like Inviati  
    1
    Like Ricevuti  
    0
    Ciao a tutti, ho un dilemma che non riesco a risolvere.. ho neccessità di recuperare dall'interno di un file il contenuto e di usare questo contenuto per copiare e rinominare il file. mi spiego meglio:

    Ho un file1 che si chiama 14-1-2021.csv dovrei copiarlo e rinominarlo in un nuovo file, ma il nome del nuovo file devo prenderlo dall'interno di un altro file (file2).

    secondo la mia logica prima di tutto apro il file 2 per recuperare il suo contenuto. e più precisamente:
    dichiaro il percorso e nome del file
    Dim FileSito As String
    FileSito = (App.Path & "\Db\sito_hub\") & "sito-" & (Day(Date) & "-" & Month(Date) & "-" & Year(Date) & ".dat")
    
    lo apro assegnando il nome trovato alla label sito.caption

     Open FileSito For Input As #1
         
         
         sito.Caption = Input$(LOF(1), #1)
         
         
         
          Close #1
    

    mi viene recuperato il nome selargius pertanto vedro nel form che sito.caption mostra selargius


    ora voglio copiare il famoso file "14-1-2021.csv" come "selargius-14-1-2021.csv"

    pertanto scrivo:

    Dim RINOstrFileORIG As String
    Dim RINOstrFileDEST As String
    RINOstrFileORIG = (App.Path & "\Archivio\")  & (Day(Date) & "-" & Month(Date) & "-" & Year(Date) & ".csv")
    RINOstrFileDEST = (App.Path & "\Archivio\")& sito.caption  & (Day(Date) & "-" & Month(Date) & "-" & Year(Date) & ".csv")
    
    FileCopy RINOstrFileORIG, RINOstrFileDEST
    
    facendo cosi mi viene restituito un errore e cioè il seguente

    errore di run-time 52 Nome o numero di file non valido... perchè?


    se invece di riempire la label sito.caption dal contenuto del file la dichiaro nel codice.. esempio

    sito.caption="selargius"

    tutto funziona correttamente... non capisco... qualcuno potrebbe illuminarmi ?

  2. #2
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Post
    7,244
    Blogs
    3
    Like Inviati  
    19
    Like Ricevuti  
    13
    E' probabile che quello che leggi dal file2 non sia "solo" la parola "selargius", ma anche qualche altro carattere, magari il ritorno a capo, o l'interruzione di riga.

    Per rendertene conto, dopo aver letto il contenuto del file ed averlo assegnato alla Label, prova a scrivere:

    MsgBox Len(sito.Caption)
    
    se il MessageBox ritorna più di 9, allora evidentemente c'è qualche carattere in più che da fastidio nella FileCopy.

    A margine di tutto, comunque, non è necessario usare una Label per contenere ciò che leggi da un file, basta una semplice variabile di tipo String, che tra l'altro puoi riutilizzare comodamente nel resto del codice.

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  3. #3
    L'avatar di jqoobe
    jqoobe non è in linea Novello
    Post
    41
    Like Inviati  
    1
    Like Ricevuti  
    0
    mi restituisce 15

    come potrei risolvere ?

  4. #4
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,482
    Blogs
    5
    Like Inviati  
    6
    Like Ricevuti  
    34
    Intanto tutte quelle parentesi non servono a molto ... il nome del file origine lo scrivi con

    FileSito = App.Path & "\Db\sito_hub\sito-" & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & ".dat"
    
    e poi

    RINOstrFileORIG = App.Path & "\Archivio\" & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & ".csv"
    
    Il problema invece deriva sicuramente da cosa è stato letto dal file. Molto probabilmente ci sono dei caratteri "non visibili" (sospetto Cr-Lf) che non possono essere poi utilizzati per il nome di file. Prova a scrivere

    RINOstrFileDEST = App.Path & "\Archivio\" & Replace(sito.caption, vbcrlf, "")  & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & ".csv"
    
    Magari, dato che hai detto che sono 15 caratteri, dovresti capire quali sono questi caratteri in più, esaminando il codice ASCII dei caratteri della stringa letta.
    ℹ️ Leggi di più su AntonioG ...

  5. #5
    L'avatar di jqoobe
    jqoobe non è in linea Novello
    Post
    41
    Like Inviati  
    1
    Like Ricevuti  
    0
    perfetto grazie mille ! funziona perfettamente.

  6. #6
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,482
    Blogs
    5
    Like Inviati  
    6
    Like Ricevuti  
    34
    Però qualche dubbio ce l'ho ancora ... se dici che la lunghezza è 15 e la stringa selargius è di 9 caratteri, anche con i Cr Lf sarebbero 11 ... e gli altri? Sono 4 spazi? O altro che non è visibile e che viene inserito comunque nel nuovo nome?
    ℹ️ Leggi di più su AntonioG ...

  7. #7
    L'avatar di jqoobe
    jqoobe non è in linea Novello
    Post
    41
    Like Inviati  
    1
    Like Ricevuti  
    0
    l'ho pulito ora funziona perfettamente :

    intestazionefile.Caption = Trim(sito.Caption)
         intestazionefile.Caption = Replace(intestazionefile.Caption, " ", "-")
         intestazionefile.Caption = Replace(intestazionefile.Caption, "(", "")
         intestazionefile.Caption = Replace(intestazionefile.Caption, ")", "")
         intestazionefile.Caption = Replace(intestazionefile.Caption, "'", "")
         'intestazionefile.Caption = Replace(intestazionefile.Caption, "-", "")
    
    
    
    ''MsgBox Len(intestazionefile.Caption)
    
    intestazionefile.Caption = Replace(intestazionefile.Caption, vbCrLf, "")
    ''MsgBox Len(intestazionefile.Caption)
    

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. dichiarare come variabile pubblica la path del database
    Da marco61 nel forum Microsoft Access
    Risposte: 8
    Ultimo Post: 28-03-2019, 14:41
  2. Path variabile all'interno di una macro
    Da Backflip nel forum Microsoft Excel
    Risposte: 3
    Ultimo Post: 01-12-2017, 09:40
  3. Path HTML e path da collegamento ipertestuale di Access incoerenti
    Da OsvaldoLaviosa nel forum Microsoft Access
    Risposte: 25
    Ultimo Post: 15-10-2014, 09:23
  4. Risolto: Local Path to Network Path
    Da aurum81 nel forum Visual Basic 6
    Risposte: 7
    Ultimo Post: 14-11-2012, 17:09
  5. formula con path variabile
    Da zago nel forum Microsoft Word
    Risposte: 11
    Ultimo Post: 03-08-2010, 12:44