Ciao,
Questa può essere una domanda stupida, ma non riesco a risolverla. Ho un programmatore di finestre che esegue uno script JMP ogni 12 ore e salva la tabella dei dati in una cartella condivisa. Tuttavia, il file non può essere salvato nella successiva esecuzione automatica, se la tabella è aperta (da qualsiasi utente), come di solito è. Esiste un'opzione semplice per aprire il file JMP in modalità "sola lettura" e abilitare la sovrascrittura dei dati?
Grazie!
A mia conoscenza non esiste un'opzione "semplice", ma ci sono opzioni, di seguito sono riportate alcune:
- Rendi la cartella di sola lettura per altri utenti e concedi l'accesso in scrittura alla persona che scrive il file
- Utilizzare Esegui comando per abilitare la scrittura di file di "sola lettura". Esistono diversi modi per farlo, ma uno sarebbe rimuovere il flag di sola lettura appena prima di sovrascrivere e quindi abilitarlo dopo il salvataggio. Se ricordo bene ci sono anche flag di tipo forza, che possono forzare la sovrascrittura dei file di sola lettura.
Qualcosa del genere potrebbe funzionare. Il DOS attributo il comando non capirà $ desktop , quindi usa il secondo esempio convertireFilePath per aggiustarlo. Aggiunge anche virgolette nel caso in cui siano presenti spazi nei percorsi.
// make read only: attrib.exe +R <PATH>
txt = Run Program(executable("attrib.exe"), options({"+R","\!""||FILENAME||"\!""}), readfunction("text"));</PATH>
// make NOT read only: attrib.exe -R <PATH>
txt = Run Program(executable("attrib.exe"),options({"-R","\!""||convertfilepath( FILENAME ,windows)||"\!""}),readfunction("text"));</PATH>
Il componente aggiuntivo FileSnapper lo usa per rendere i file di snapshot di sola lettura. Penso che funzionerà anche per le tabelle .JMP.
Tutto ciò presuppone che i tuoi utenti facciano parte del tuo team e non stiano cercando di interrompere questa soluzione. Se hanno accesso r/w al file, possono modificare anche l'attributo. Quindi avresti bisogno di un server in cui hai il permesso di scrittura e loro no. Se la tua cartella condivisa è sul tuo computer, probabilmente puoi impostare i permessi più facilmente che usare il comando attrib. Le autorizzazioni non ti proteggeranno da te stesso: se lasci un'istanza di JMP in esecuzione con il file aperto (non di sola lettura), l'istanza pianificata di JMP sulla stessa macchina/utente non avrà accesso esclusivo. Potresti fare entrambe le cose se è fondamentale.