Discussione chiusa
Pagina 3 di 3 primaprima 123
Visualizzazione dei risultati da 21 a 27 su 27

Controllo se file esiste

  1. #21
    Post
    1,608
    Blogs
    33
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Anche se non ho sostenuto fosse questione di ms, ma di allocazione di memoria usata cosa fortemente non capita...,
    Io ho parlato di impatto prestazionale, quindi tempi & risorse, milionesimi di secondo & byte di memoria...
    Più sopra ho scritto : Se puoi suggerire un codice di test che metta in luce il reale risparmio di tempo e risorse, in presenza di molte stringhe, utilizzando Len(), ovviamente sarò ben felice di provarlo.

    Quote Originariamente inviato da @Alex Visualizza il messaggio
    ho fatto questi test su 100 iterazioni, lasciano il tempo che trovano anche per la viariabilità di cui sono affetti ma giusto per ho mediato ...
    Len(Dir(....))>0 -----> 16,16 ms
    Dir(...)="" ----> 16,83 ms
    Dir(...)=vbNullstring ----> 16,16 ms
    GetAttr(...) ----> 10,05 ms
    API(...) ----> 15,45 ms
    
    Direi proprio che lasciano il tempo che trovano, considerato che stavamo parlando di UN file in C:\...
    ℹ️ Leggi di più su MarcoGG ...

  2. #22
    Post
    635
    Blogs
    2
    Like Inviati  
    0
    Like Ricevuti  
    0
    Evito di innescare altre discussioni inutili,la discussione poi che si è creata tra voi lascia il tempo che trova.....infatti sono praticamente identiche,ho rifatto anche io i test di velocità,che su 100000 iterazioni ho trovato le seguenti velocità:

    Dir()=0,000058s
    len(dir())=0,000057s
    EsisteFile=0,000029s

    i tempi poi tra len e dir a volte si invertono dimostrando che non esiste reale differenza prestazionale tra le due funzioni.Metre discorso a parte per la "EsisteFile" che risulta veloce il doppio,piu portabile,piu sicura!

    Quote Originariamente inviato da MarcoGG
    Ipotizzare un uso come Dir(""), EsisteFile(""), e quant'altro è assurdo. Che senso ha chiedere a VB "Dimmi se il file stringa-vuota esiste" ?!?
    E' semplicemente illogico.
    Questa si chiama programmazione difensiva!
    Un programmatore dopo che ha rilasciato una versione 1.0 pensa che il suo programma sia perfetto,ma pultroppo nel giro di qualche settimana si accorgerà che il suo programma possiede dei bug,se lui avrà ragionato con una logica della programmazione difensiva il suo programma riuscirà a girare lo stesso,altrimenti terminerà portando spiacevoli inconvenienti da parte dell'utente.
    ℹ️ Leggi di più su vbExtreme ...

  3. #23
    Post
    1,608
    Blogs
    33
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da vbExtreme Visualizza il messaggio
    Evito di innescare altre discussioni inutili,la discussione poi che si è creata tra voi lascia il tempo che trova.....infatti sono praticamente identiche,ho rifatto anche io i test di velocità,che su 100000 iterazioni ho trovato le seguenti velocità:

    Dir()=0,000058s
    len(dir())=0,000057s
    EsisteFile=0,000029s

    i tempi poi tra len e dir a volte si invertono dimostrando che non esiste reale differenza prestazionale tra le due funzioni.Metre discorso a parte per la "EsisteFile" che risulta veloce il doppio,piu portabile,piu sicura!
    Figurati. Fosse per me non l'avrei manco cominciata, a giudicare dal numero pauroso di zeri che vedo dopo quelle virgole !

    Quote Originariamente inviato da vbExtreme Visualizza il messaggio
    Questa si chiama programmazione difensiva!
    Un programmatore dopo che ha rilasciato una versione 1.0 pensa che il suo programma sia perfetto,ma pultroppo nel giro di qualche settimana si accorgerà che il suo programma possiede dei bug,se lui avrà ragionato con una logica della programmazione difensiva il suo programma riuscirà a girare lo stesso,altrimenti terminerà portando spiacevoli inconvenienti da parte dell'utente.
    Non divaghiamo.
    Affermare che in una Function c'è un BUG, come hai fatto tu, significa affermare che il programmatore non ha previsto e gestito tutti i casi di utilizzo. Ergo : la Function può dare risultati inattesi, o nella peggiore delle ipotesi, un qualsiasi errore di esecuzione.

    Ora, tu affermi che il fatto che io posso passare a Dir() un argomento stringa-vuota, con il comportamento che ne deriva, è un BUG di DIR().

    1. Non mi risulta che Dir("") vada in errore.
    2. Se dal mio progetto VB6 salvato in una cartella eseguo Dir(""), ottengo il nome del primo file in ordine alfabetico contenuto in quella cartella.

    Nell'ipotesi di un progetto essenziale, nella cartella ho verosimilmente 3 files :
    - Form1.frm
    - Progetto1.vbp
    - Progetto1.vbw
    Ebbene : in questo caso Dir("") restituisce correttamente "Form1.frm".

    E quindi non è un Bug.
    Semplicemente chi ha creato Dir() ha così gestito il parametro stringa-vuota.
    Possiamo parlare del fatto che soggettivamente possa piacerci o meno quel tal modo in cui è stata gestita una situazione-limite, ma non di un Bug.
    ℹ️ Leggi di più su MarcoGG ...

  4. #24
    Post
    635
    Blogs
    2
    Like Inviati  
    0
    Like Ricevuti  
    0
    Il numero di zeri non è poi cosi elevato....ma a parte questa considerazione che lascia un pò a desiderare forse non mi sono spiegato:

    Non ho detto che il metodo Dir ha un bug,ma ho detto che la funzione che usa il metodo dir crea un bug.
    Infatti tale funzione restituirebbe true se la variabile fosse "".Bisognerebbe quindi gestire tale e altre eccezzioni.Perchè quindi complicarci la vita?
    ℹ️ Leggi di più su vbExtreme ...

  5. #25
    Post
    1,608
    Blogs
    33
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da vbExtreme Visualizza il messaggio
    Non ho detto che il metodo Dir ha un bug,ma ho detto che la funzione che usa il metodo dir crea un bug.
    Infatti tale funzione restituirebbe true se la variabile fosse "".
    Ma neanche per sogno.
    Il codice da me postato per l'utente pazienza al post #3 è questo :
        If Dir("C:\Test.txt") <> "" Then
            MsgBox "Esiste"
        Else
            MsgBox "Non Esiste"
        End If
    
    Modificato poi per venire incontro alle sue esigenze.
    Io non ho mai parlato di farne una Funzione generalizzata da riutilizzare in N casi possibili.
    Ho preso il SUO codice e ho correttamente risposto al SUO quesito, individuando e risolvendo il problema. Punto.
    Che sia, o che voglia essere il codice di una Function te lo sei inventato tu.
    Il nome del file è NOTO, e NOTA la posizione. Nel SUO caso il rischio di passare a Dir() una stringa vuota, se vuoi una definizione ingegneristica, converge a zero.

    Se voglio fare una Function che faccia uso di Dir(), e che mi voglio portare dove mi pare, è ovvio che dovrò gestire i casi limite.
    L'utente pazienza al post #1 dice : Ho notato che sia che il file esiste o no, io ricevo sempre ESISTE... e infine "Dove é l'errore ?".
    Io continuo a pensare di aver trovato l'unico vero errore, perchè con tutte le Len(), EsisteFile(), GetAttr(), e Functions del mondo, finchè lui continuava a mettere/togliere il suo file ini da una dir, mentre ne controllava un'altra, facevamo notte.
    ℹ️ Leggi di più su MarcoGG ...

  6. #26
    Jamester non è in linea Novello
    Post
    3
    Like Inviati  
    0
    Like Ricevuti  
    0
    Scusate se riesumo un vecchio post ma SONO ORE che non riesco a risolvere la stessa questione e non capisco l'errore dove sia: ho provato decine di codici ma non ne va 1: una volta mi dice che non esiste mai il file, un'altra volta mi dice che esiste sempre. Sto impazzendo! Il mio codice è fatto un po' diversamente dall'esempio:

    Dim strDir As String
    Dim nomeCompletoFile As String
    nomeCompletoFile = Filename & "\Giornata" & Week & ".giornata"
    strDir = Dir(nomeCompletoFile)

    MsgBox strDir

    If strDir = "" Then
    MsgBox "Non Esiste"
    Else
    MsgBox "Esiste"
    End If

    Dove filename equivale a "D:\Programmi\MZ\Seasons\Stagione 74" concatenato a \Giornata unito a week che è un valore numerico variabile e .giornata la terminazione del file.

    Il Msgbox mi restituisce un box vuoto, idem strDir e quindi il file pur essendoci, non lo vede. Dov'è l'errore?

    Cambiando strDir = Dir(nomeCompletoFile) in strDir = nomeCompletoFile mi dice che invece il file è sempre presente
    Ultima modifica di Jamester; 30-06-2020 17:04 

  7. #27
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,503
    Blogs
    5
    Like Inviati  
    6
    Like Ricevuti  
    35
    Il thread è di 10 anni fa !

    Non si scrive in thread così vecchi. Se vuoi, apri un nuovo thread e metti un link al vecchio thread.

    Se devi postare codice utilizza i tag CODE e usa un titolo adeguato per il nuovo thread.

    Questo viene chiuso (vedi regolamento).
    ℹ️ Leggi di più su AntonioG ...

Discussione chiusa
Pagina 3 di 3 primaprima 123

Potrebbero interessarti anche ...

  1. HTML esiste un codice che consenta il download di file txt?
    Da Francesco53 nel forum HTML, CSS e JavaScript
    Risposte: 5
    Ultimo Post: 08-04-2018, 15:14
  2. Risposte: 5
    Ultimo Post: 13-06-2014, 21:20
  3. come vedere se esiste un file in una cartella
    Da mattoneo nel forum Visual Basic 6
    Risposte: 7
    Ultimo Post: 20-02-2008, 21:47
  4. Generare un evento se in una directory il file esiste
    Da nightingales nel forum Visual Basic .Net
    Risposte: 3
    Ultimo Post: 22-02-2006, 09:52
  5. Verifica se esiste file
    Da malibu nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 18-01-2006, 14:55