Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    36

    [vb6] - Ricerca dei file gestiti da un programma

    salve ragazzi, ciao moderatori


    Esiste un sistema per poter contare il numero di file che un programma apre e/o salva su disco, senza scomodare debugger o cose del genere...che non sarebbero nemmeno alla mia portata?!

    Io pensavo una cosa del genere:
    1 - leggo il numero di occorrenze "Open" allì'interno del sorgente vb6
    2 - per ogni occorrenza trovata, leggo la stringa che si trova a dex, tra "Open" e "For" (che è la variabile o direttamente il nome del file aperto)
    3 - ricerco quella variabile nel file sorgene per capire dove e come viene assegnata e creo un vettore elenco
    4 - mostro i nomi che popolano il vettore appena creato.

    sono sicuro che esiste un sistema molto piu veloce, pratico e intelligente ma..
    ...non mi dite male..sono all'inizio.

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

    Non ho capito dove vuoi fare questo controllo ...

    All'interno di un file sorgente VB ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    36
    si, come ho scritto. Ma non so, sicuramente c'è un altro metodo

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    La vedo un po' difficile perche' una singola Open potrebbe essere eseguita piu' volte con nomi di file diversi.

    Seguire il flusso di un programma esaminandone solamente il sorgente, può portare facilmente ad errori di interpretazione ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    36
    Mh, non lo so. Per ora sono riuscito a fare le seguenti cose:

    1 - leggo ogni singola stringa che si trova tra agli "Open" e "For" dei vari singoli file sorgente

    2 - creo un vettore del tipo:

    NomeTraOpen = file sorgente, StringaTraOpen

    3 - Modifica del NomeTraOpen con:

    NomeTraOpen = NomeTraOpen & " ="

    4 - [sto lavorando a questo]
    a) Ricerca della stringa NomeTraOpen (nuova) all'interno dei file sorgenti in modo da trovare dove questa stringa viene assegnata;
    b) memorizzazione di un vettore con tutte le assegnazioni trovate, del tipo:

    File = FileSorgente, StringaTraOpen, StringaAssegnata

    c) verfica che non ci siano doppioni ed eventualmente eliminazione di questi;

    L'elenco che ottengo dovrebbe essere quello dei file gestiti da ogni singolo file sorgente.

    Un primo problema riscontrato è quello che le voci tra "Open" e "For" siano la somma di variabili, ossia siano del tipo:

    Open path + NomeFile For Input as #1

    In questo caso basta verificare che si tratta di una somma di variabili (+ o &) e ricercare le singole variabili e le loro assegnazioni nel file sorgente.

    Un secondo potrebbe essere se all'interno dello stesso file sorgente vengono assegnati alla stessa variabile nomi diversi; non so, per esempio:

    ...
    riga 123 NomeFile = "C:\prova.txt"
    riga 343 Open NomeFile For Input as #f

    e poi

    riga 123 NomeFile = "D:\prova.txt"
    riga 343 Open NomeFile For Input as #f

    Ma in questo caso, la StringaAssegnata è diversa, quindi il nome del file è diverso, e quindi sarebbe un file diverso gestito dal file sorgente.



    Credo che sia una cosa interessante, almeno per fare un po di esercizio. Il codice che fino ad ora ho sviluppato non è proprio tanto bello, nel senso che esegue i vari step pedissequamente e senza ottimizzaizone alcuna, uno dopo l'altro. Ma per ora funziona.
    Appena ne ho una forma decente, anche "sporca" magari la posto così tu, o anche glia altri, gli potete dare un'occhiata..anche se sicuramente non sarà degno di grandi considerazioni

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    36
    ops...
    correzione.

    volevo scrivere:


    ...

    riga 123 NomeFile = "C:\prova.txt"
    riga 343 Open NomeFile For Input as #f

    e poi

    riga 565 NomeFile = "D:\prova.txt"
    riga 578 Open NomeFile For Input as #f

    ...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    Ma questa cosa che vuoi fare ha uno scopo o è una specie di esercitazione? Perché se ha uno scopo pratico e lo spieghi forse si trovano soluzioni diverse.

    Non capisco poi la tua dichiarazione
    senza scomodare debugger o cose del genere...che non sarebbero nemmeno alla mia portata?!
    Scrivere un programma senza usare le funzioni di debug non ha senso. A meno che per "debugger" tu non intenda qualche altra cosa.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    36
    ciao grumpy.

    Allora, non è un'esercitazione (mi sono espresso cosi ma non per intendere questo).
    Lo scopo è quello di vedere, appunto, dato un qualsiasi sorgente, quali siano i file IN/OUT che lo stesso gestisce.

    Lo scopo è questo:

    elencare quali sono i file IN/OUT (se esistono, ovviamente) che vengono gestiti da un determinato programma (di cui si ha il codice sorgente).
    Per capirci tutti quelli che compaiono tra le parole chieve "Open" e "For", elencandoli poi a video. Ovviamente escludendo le ripetizioni.


    la dichiarazione era solo per dire: "non so se ci sono soft che lanciati in background, eseguono il controllo di tutte le operazioni di scrittura/lettura di file su disco da parte di un determinato programma (exe, in questo caso) e ne restituiscono il nome"
    Anche se questo sistema (e ripeto, non so nemmeno se esiste) elencherebbe solamente i file che verrebbero scritti durante l'esecuzione di un exe..Tra l'altro questo non comporta ovviamente il fatto che siano tutti quelli gestiti dal programma, in quanto alcuni potrebbero non essere aperti perche magari non viene eseguita una determinata parte del prog.
    Sempre a meno che, appunto, non esiste già fatto qualche cosa di simile a quello che voglio fare io.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    36
    chiedo scusa a oregon...
    mi sono accorto ora di non averti salutato appena entrato.

    lo faccio ora.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    Originariamente inviato da vtr2009
    Lo scopo è questo:
    elencare quali sono i file IN/OUT (se esistono, ovviamente) che vengono gestiti da un determinato programma (di cui si ha il codice sorgente).
    Per capirci tutti quelli che compaiono tra le parole chieve "Open" e "For", elencandoli poi a video.
    Non mi sembra che questo sia un vero scopo. Supponiamo che tu ci riesca: una volta che sul video hai questo elenco di file, che cosa fai? Esclami "Oh che belli! Accipicchia quanti sono!" oppure prendi qualche decisione o intraprendi qualche azione? Lo scopo, semmai, sarebbe questo.

    E un'altra cosa: l' istruzione Open... For... As... non è l'unico modo per aprire un file in Visual Basic, quindi la tua ricerca potrebbe darti dei risultati incorretti.

    Infine, se di questo/i programma hai il sorgente, non puoi fare una ricerca testuale sul codice?

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.