• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Leggi altro.

File esistente

lucasugar

Utente Junior
Professione: Disegnatore meccanico
Software: GBG
Regione: Lombardia
#1
Salve a tutti,
esiste una funzione per sapere se un file esiste? Conosco la funzione DIRECTORY_EXISTS per le directory. Ma per i file?
 

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#2
Salve a tutti,
esiste una funzione per sapere se un file esiste? Conosco la funzione DIRECTORY_EXISTS per le directory. Ma per i file?
Ma parli di OneSpace Drafting o di windows?
 

lucasugar

Utente Junior
Professione: Disegnatore meccanico
Software: GBG
Regione: Lombardia
#3
Parlo di OneSpace Drafting (ME10). Fra i vari comandi che il programma mette a disposizione, c'è la funzione DIRECTORY_EXISTS che restituisce 1 o 0 a seconda se una data directory esiste oppure no. Sarebbe comodo se ci fosse una funzione simile per sapere se un dato file esiste oppure no. Nella guida non ho trovato niente che possa fare al caso mio, ma so che esistono comandi per qualche motivo non documentati.
 

painaz

Utente Standard
Professione: ingegnere
Software: proe
Regione: veneto
#4
Salve a tutti,
esiste una funzione per sapere se un file esiste? Conosco la funzione DIRECTORY_EXISTS per le directory. Ma per i file?
Ciao, in questo link

http://me10macro.awardspace.com/tipstricks.html#FileBrowser

c'è una macro per saper quali file esistono nella directory corrente. Se sai quali file esistono, sei a metà dell'opera.

si tratta di interrogare queste due tabelle:

tabella logica "FBT_DTAB" per il nome della directory

tabella logica "FBT_FTAB" per i file contenuti (nome, estensione, dimensione)

Forse è un punto di partenza utile.
 
Ultima modifica:

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#5
Ciao, in questo link

http://me10macro.awardspace.com/tipstricks.html#FileBrowser

c'è una macro per saper quali file esistono nella directory corrente. Se sai quali file esistono, sei a metà dell'opera.

si tratta di interrogare queste due tabelle:

tabella logica "FBT_DTAB" per il nome della directory

tabella logica "FBT_FTAB" per i file contenuti (nome, estensione, dimensione)

Forse è un punto di partenza utile.

anche qui' dovrebbe trovarsi materiale interessante:

http://www.clausbrod.de/cgi-bin/view.pl/CoCreateModeling/WebHome
 

painaz

Utente Standard
Professione: ingegnere
Software: proe
Regione: veneto
#6
Salve a tutti,
esiste una funzione per sapere se un file esiste? Conosco la funzione DIRECTORY_EXISTS per le directory. Ma per i file?
cercando la soluzione ai miei problemi ho trovato in internet la soluzione ai tuoi.
La soluzione è semplice ed elegante:

LET Test_file_name 'C:\my_file.txt'
TRAP_ERROR
OPEN_INFILE 1 Test_file_name END
IF (CHECK_ERROR) {file does not exist}
OPEN_OUTFILE 1 Test_file_name
Commands...
ELSE {file exists}
CLOSE_FILE 1
Commands...
END_IF

trovato su:

http://www.cocreateusers.org/forum/showthread.php?t=5443
 

lucasugar

Utente Junior
Professione: Disegnatore meccanico
Software: GBG
Regione: Lombardia
#7
Ciao, in questo link

http://me10macro.awardspace.com/tipstricks.html#FileBrowser

c'è una macro per saper quali file esistono nella directory corrente. Se sai quali file esistono, sei a metà dell'opera.

si tratta di interrogare queste due tabelle:

tabella logica "FBT_DTAB" per il nome della directory

tabella logica "FBT_FTAB" per i file contenuti (nome, estensione, dimensione)

Forse è un punto di partenza utile.
In effetti questo è un tipo di soluzione a cui avevo pensato. Ne terrò conto.
Grazie
 

lucasugar

Utente Junior
Professione: Disegnatore meccanico
Software: GBG
Regione: Lombardia
#9
cercando la soluzione ai miei problemi ho trovato in internet la soluzione ai tuoi.
La soluzione è semplice ed elegante:

LET Test_file_name 'C:\my_file.txt'
TRAP_ERROR
OPEN_INFILE 1 Test_file_name END
IF (CHECK_ERROR) {file does not exist}
OPEN_OUTFILE 1 Test_file_name
Commands...
ELSE {file exists}
CLOSE_FILE 1
Commands...
END_IF

trovato su:

http://www.cocreateusers.org/forum/showthread.php?t=5443
Anche questa è una soluzione a cui avevo pensato. Quello che non mi piace di questo approccio è che la funzione OPEN_INFILE utilizza numeri di identificazione di file (in questo caso 1) che possono andare da 0 a 10. Se, malauguratamente, il numero di identificazione del file è già utilizzato da un'altra macro nello stesso momento, sorgono problemi di conflitto.

Ho pensato una soluzione simile ma migliore utilizzando la funzione COPY_FILE:

DEFINE FILE_EXISTS

PARAMETER n

TRAP_ERROR
COPY_FILE n
END
IF (CHECK_ERROR)
LET MACRO_RESULT FALSE
ELSE
LET MACRO_RESULT TRUE
END_IF

END_DEFINE

Lanciando questa macro con un nome di file come parametro, la variabile MACRO_RESULT conterrà FALSE (0) oppure TRUE (1) se il file esiste.

Grazie a tutti comunque.

Ciao...
 

painaz

Utente Standard
Professione: ingegnere
Software: proe
Regione: veneto
#10
Bene...

Vedo che c'è gente che combatte ancora con le macro di Me10.

Comunque alla fine io ho finito di combattere: sono riuscito a scrivere la macro che desideravo. Fa la scansione della lista parti e aggrega in automatico tutte le parti con uno stesso nome.

Così se ho uno studio macchina ove si usa una singola parte per ogni vista viene tutto riunificato.