Formato dei file di Importazione / Esportazione

Versione 1.2C  del  13 Gennaio 2000


##===== Commenti ===========================================================##
//
// Questo e` un commento, inizia con "//" e termina con il fine riga.
;; Anche questo e` un commento, inizia con ";;" e termina con il fine riga.
## Un commento che inizia con questi due caratteri (oppure con una coppia di
   "%") puo` essere di lunghezza illimitata, puo` essere distribuito su piu`
   righe, e deve terminare con una coppia di caratteri uguale a quella che
   lo ha iniziato. Tutti i tipi di commento sono ignorati dal programma di
   importazione, e servono unicamente per rendere piu` comprensibile
   all'utente la lettura del file. ##
%% Nota: nel seguito, per comodita`, le parole chiave sono indicate sia in
   italiano che in inglese (internazionale). Le parole chiave in inglese
   precedono quelle in italiano e sono indicate come commento. Le parole
   chiave italiane sono indicate direttamente con un esempio. Il programma di
   importazione e` in grado di interpretare sia le parole in inglese che
   quelle in italiano (riconoscendone automaticamente la lingua e commutando
   sulla relativa tabella delle parole chiave).   %%
 

##===== Dati Catastali =====================================================##
//  !!!! NON ANCORA IMPLEMENTATI !!!!
//  !!!! I DATI CATASTALI SONO PER IL MOMENTO IGNORATI, IN IMPORT,
//  !!!! E GENERATI "VUOTI" IN EXPORT
//  !!!! ---- SONO POSSIBILI CAMBIAMENTI NELLA DEFINIZIONE ---- !!!!
//
//  Si tratta di dichiarazioni facoltative, e sono soltanto memorizzate a
//  scopo di archivio; non sono utilizzate a fini elaborativi, salvo la
//  definizione del'ingresso, rappresentato nella grafica.
//  Occorre dichiarare un punto caposaldo come ingresso, e i dati catastali
//  dichiarati nel seguito si riferiranno a tale ingresso.
//  I dati catastali devono essere dichiarati, non importa in quale ordine,
//  dopo la definizione dell'ingresso a cui si riferiscono, anche inframezzate
//  da altre informazioni appartenenti ad altre categorie, ma devono
//  concludersi prima del successivo gruppo di misure di segmenti. Non
//  sono ammessi dati catastali definiti dopo un gruppo di dati, o
//  all'inizio, senza che sia stato definito un punto di ingresso.
//  In assenza di dati di catasto, il processo di importazione assegna
//  "vuoti" i rispettivi campi. Nuovi dati catastali si possono dichiarare
//  per ogni nuovo ingresso definito.
//  In assenza della definizione dell'ingresso, nella grafica non apparira`
//  esplicitamente nessun ingresso. Il primo ingresso dichiarato definisce
//  il punto di riferimento metrico (0,0,0). Il primo segmento incontrato
//  nel seguito, avente come estremo il primo ingresso dichiarato risultera`
//  posizionato al punto (0,0) delle proiezioni Pianta e Profilo.
//

// Entrance=
Ingresso= Punto01         ;; Il Punto caposaldo che voglio sia considerato
                          ;; come "ingresso".
                          ;; Viene acquisito solo il testo presente fino
                          ;; alla fine della riga, eventualmente troncato
                          ;; alla lunghezza massima dei nomi dei punti.
// Name=
Nome= Grotta del Pipolo   ;; Il nome della grotta, ed eventuali sinonimi,
                          ;; in riferimento all'ingresso prima definito.
                          ;; Viene acquisito solo il testo presente fino
                          ;; alla fine della riga. Eventualmente troncato
                          ;; alla lunghezza massima di 128 caratteri.
// Number=
Numero= 4555Li/SV         ;; Il numero di catasto, ed eventuali altri
                          ;; identificatori, riferito all'ingresso prima
                          ;; definito. E` memorizzato come testo, e
                          ;; viene acquisito solo il testo presente fino
                          ;; alla fine della riga. Eventualmente troncato
                          ;; alla lunghezza massima di 32 caratteri.
// Site=
Sito= Monte Mao, SV       ;; Nome e altri dati della localita` ove si apre
                          ;; l'ingresso, eventuale breve itinerario. Viene
                          ;; acquisito solo il testo presente fino alla fine
                          ;; della riga. Eventualmente troncato alla lunghezza
                          ;; massima di 128 caratteri.
// Position=
Posizione= +4°12'40"00 +44°19'23"00
                          ;; Posizione geografica dell'ingresso prima definito,
                          ;; anche in piu` sistemi di coordinate. Viene
                          ;; acquisito solo il testo presente fino alla fine
                          ;; della riga. Eventualmente troncato alla lunghezza
                          ;; massima di 96 caratteri.
// Altitude=
Quota= +425 m slm         ;; Quota geografica dell'ingresso prima definito.
                          ;; Viene acquisito solo il testo presente fino alla
                          ;; fine della riga. Eventualmente troncato alla
                          ;; lunghezza massima di 32 caratteri.
// Ground=
Terreno= Calcare dolomitico triassico
                          ;; Terreno geologico della zona dell'ingresso prima
                          ;; definito. Viene acquisito solo il testo presente
                          ;; fino alla fine della riga. Eventualmente troncato
                          ;; alla lunghezza massima di 96 caratteri.
 

##===== Rilevatori, Strumenti, Precisione e Descrizione Tratta =============##
//  !!!! NON ANCORA IMPLEMENTATI !!!!
//  !!!! QUESTI DATI RIGUARDANTI LA TRATTA DI RILIEVO SONO
//  !!!! PER IL MOMENTO IGNORATI, IN IMPORT, E GENERATI "VUOTI" IN EXPORT
//  !!!! ---- SONO POSSIBILI CAMBIAMENTI NELLA DEFINIZIONE ---- !!!!
//
//  Si tratta di dichiarazioni facoltative; in loro assenza, il programma di
//  importazione le assegna "vuote". Queste, al contrario delle precedenti,
//  possono comparire piu` volte, e definiscono/ridefiniscono valori che si
//  applicano alle misure seguenti la dichiarazione.
//

// Team=
Squadra= A.Bianchi, B.Rossi, C.Verdi
                          ;; Elenco dei rilevatori. E` memorizzato come
                          ;; testo, e viene acquisito solo il testo presente
                          ;; fino alla fine della riga. Eventualmente
                          ;; troncato alla lunghezza massima di 96 caratteri.
// Instr=
Strumenti= Squadro centesimale, bindella, eclimetro suunto
                          ;; Strumenti utilizzati. E` memorizzato come
                          ;; testo, e viene acquisito solo il testo presente
                          ;; fino alla fine della riga. Eventualmente
                          ;; troncato alla lunghezza massima di 96 caratteri.
// Precision=
Precisione= 5B            ;; Sigla o commento sulla precisione. E` memorizzato
                          ;; come testo, e viene acquisito solo il testo
                          ;; presente fino alla fine della riga. Eventualmente
                          ;; troncato alla lunghezza massima di 32 caratteri.
// Description=
Descrizione= Molto fango  ;; Descrizione sintetica e/o nota sulla tratta e
                          ;; le condizioni in cui si e` svolto il rilievo.
                          ;; E` memorizzata come testo, e viene acquisito
                          ;; solo il testo presente fino alla fine della
                          ;; riga. Eventualmente troncato alla lunghezza
                          ;; massima di 96 caratteri.
 

##===== Dati di Declinazione Magnetica, riferita alla data di Rilievo ======##
//
//  Si tratta di dichiarazioni facoltative; in loro assenza, il programma di
//  importazione assegna dei default. Questi dati possono comparire piu`
//  volte, e si applicano alle misure che seguono la dichiarazione.

// DateDMY=
DataGMA= 25/4/1984        ;; Data in formato giorno/mese/anno (3 numeri
                          ;; separati da qualunque carattere che non sia a
                          ;; sua volta un numero o una lettera. Va ad esempio
                          ;; bene anche 25 04 1984 oppure 25.4.1984 (l'anno
                          ;; deve essere sempre di 4 cifre).
// DateMDY=
DataMGA= 4/25/1984        ;; Come sopra, ma in formato mese/giorno/anno.

// Declin=
Declin= 3° 00' 00" 00     ;; Declinazione: gradi/minuti/secondi/centesimi.
                          ;; Accetta fino a 4 numeri separati da qualunque
                          ;; carattere: va bene ad esempio anche 0 0 0 0,
                          ;; oppure 3-45-56,66.
                          ;; I numeri possono essere anche di meno, sono
                          ;; sempre interpretati nell'ordine gradi / minuti
                          ;; / secondi / centesimi.
// DeclinNotes=
NoteDeclin= Ramo Scisti   ;; Note in merito al valore di declinazione.
                          ;; Viene acquisito solo il testo presente fino alla
                          ;; fine della riga (eventualmente troncato alla
                          ;; lunghezza massima di 64 caratteri).

//  NOTE: Se non si definisce nessuno di questi dati (declinazione, data,
//  note) i segmenti importati vengono riferiti alla registrazione di
//  default (la "0") presente nel file in cui si importa la tratta.
//  Se si definisce anche uno solo tra i dati di cui sopra (declinazione,
//  data, o note), che sia diverso dal valore presente nella registrazione
//  di default di cui sopra, viene impostata una nuova registrazione di
//  declinazione (declinazione, data, e note). Le "note", se non definite
//  esplicitamente, sono lasciate in bianco; se e` definita solo la data,
//  la declinazione e` assunta d'ufficio pari a quella del valore presente
//  nella registrazione di default; se e` definita solo la declinazione,
//  viene impostata una data pari a quella corrente.
 

##===== Impostazione del punto decimale ====================================##

// DecPoint=
Virgola=   ,              ;; Direttiva impartita al programma per indicare
                          ;; quale carattere viene utilizzato come separatore
                          ;; decimale per i valori delle misure. I caratteri
                          ;; ammessi sono il punto  "."  e la virgola  "," .
                          ;; Se non si specifica nulla, il default e` il
                          ;; punto. Se si e` specificato la virgola, il
                          ;; carattere "," non viene piu` accettato come
                          ;; separatore tra i campi delle misure. La virgola
                          ;; e` invece regolarmente accettata come separatore
                          ;; tra i campi dati quando si usa il "." come
                          ;; separatore decimale. E` un campo facoltativo,
                          ;; puo` comparire piu` volte.
 

##===== Unita` di misura ===================================================##
//
//  Si tratta di dichiarazioni facoltative; in loro assenza, il programma di
//  importazione assegna dei default. Questi dati possono comparire piu`
//  volte, e si applicano alle misure che seguono la dichiarazione.

// Length=
Distanze= m               ;; Unita` di misura delle distanze. Sono ammessi
                          ;; i metri ('m') e i centimetri ('cm'). NON SONO
                          ;; ANCORA AMMESSE, al momento, ma sono previste,
                          ;; le unita` pollici ('in') e piedi ('ft').
                          ;; E` un campo facoltativo, per default = 'm', e
                          ;; puo` comparire piu` volte.
// Bearing=
Azimut= S                 ;; Unita` di misura degli azimut. Sono ammessi
                          ;; i gradi sessagesimali ('S') e i gradi
                          ;; centesimali ('C').
                          ;; E` un campo facoltativo, per default = 'S',
                          ;; puo` comparire piu` volte.
// Angle=
Angoli= S                 ;; Unita` di misura degli angoli tacheometrici.
                          ;; Sono ammessi i gradi sessagesimali ('S') e i
                          ;; gradi centesimali ('C').
                          ;; E` un campo facoltativo, per default = 'C',
                          ;; puo` comparire piu` volte.
// Dip=
Pendenze= S               ;; Unita` di misura delle pendenze.
                          ;; Sono ammessi i gradi sessagesimali ('S') e i
                          ;; gradi percentuali ('%').
                          ;; E` un campo facoltativo, per default = 'S',
                          ;; puo` comparire piu` volte.
 

##===== Dati definiti come "parametri" =====================================##
//
//  Si tratta di dichiarazioni facoltative; in loro assenza, il programma di
//  importazione assegna dei default. Questi parametri possono comparire piu`
//  volte, e si applicano alle misure che seguono la dichiarazione.
//  Se uno di questi parametri e` invece presente come "campo" nell'ordine
//  delle misure assegnato con la direttiva 'Ordine= (....', l'impostazione
//  "esterna" del parametro e` ignorata. In ogni caso, quando uno di questi
//  parametri non figura (o non figura piu`) nell'ordine delle misure,
//  viene applicato il default o l'ultimo valore ad esso assegnato con la
//  relativa dichiarazione.

// CutPnt=
PuntoSez= Dal             ;; Dichiarazione impartita al programma per indicare
                          ;; a quale punto si riferisce la sezione trasversa
                          ;; indicata nei valori delle misure che compaiono
                          ;; nel seguito.
                          ;; Codici: 'Dal', 'Al' (oppure 'From','To').
                          ;; Abbreviazioni: 'D', 'A' (oppure 'F','T').
                          ;; Default = 'Dal' ('From').
// Prof=
Prof= Dx                  ;; Dichiarazione impartita al programma per indicare
                          ;; che i segmenti di poligonale descritti dalle
                          ;; misure che compaiono nel seguito devono essere
                          ;; riportati in sezione longitudinale rivolti verso
                          ;; destra oppure verso sinistra.
                          ;; Codici: 'Dx' = Destra, 'Sin' = Sinistra
                          ;; (abbreviazioni: 'D', 'S'), oppure
                          ;; 'R'= Right, 'L'= Left (default = 'Dx').
// Qual=
Qual= 50                  ;; Dichiarazione impartita al programma per indicare
                          ;; che i segmenti di poligonale descritti dalle misure
                          ;; che compaiono nel seguito devono ricevere il
                          ;; giudizio di qualita` dichiarato. Questo valore e`
                          ;; internamente utilizzato soltanto se il segmento
                          ;; fa parte di un anello chiuso di poligonale.
                          ;; Codici: numeri da 0 a 100 .
                          ;; Questo campo e` facoltativo, deve precedere i
                          ;; valori delle misure e puo` comparire piu` volte.
                          ;; Default = 50 (qualita` "normale").
 

##===== Ordinamento e selezione dei campi dati =============================##
//
// Esempio di "definizione" dell'ordine con cui compariranno i valori delle
// misure. Questa definizione e` obbligatoria, e deve precedere i valori
// delle misure. Si puo` ripetere ogni volta che lo si ritiene necessario.
// Lo standard di coordinate utilizzato viene ricavato automaticamente dal
// programma, sulla base del tipo di campi impostati.
// I nomi dei campi ammessi sono riportati nel seguito. Nell'elenco, devono
// essere separati tra di loro almeno da uno <spazio>, o da un carattere di
// <tabulazione>, o da una <virgola>, oppure da un <accapo>.
// Nella definizione dell'ordine si intende implicitamente incluso, come
// ultimo campo, un campo "note segmento", che non deve essere specificato
// nell'ordinamento. La parentesi chiusa ')' termina la lista dei campi.

// Order=
Ordine= ( Dal, Al, Dist, Azimut, Pend )

// CAMPI ELENCABILI
//
// (in italiano)===  (in inglese)======
// Dal, Al,          From, To,           ;; I punti estremi "Dal" e "Al"
// Dist, /Dist,      Length, /Length,    ;; Distanza diretta e inversa
// Azimut, /Azimut,  Bearing, /Bearing,  ;; Azimut diretto e inverso
// Pend, /Pend,      Dip, /Dip,          ;; Pendenza diretta e inversa
// Pianta, /Pianta,  Plan, /Plan,        ;; Dist. planare diretta e inversa
// Disliv, /Disliv,  DifLev, /DifLev,    ;; Dislivello diretto e inverso
// Est, Nord,        East, North,        ;; Spostamenti cartesiani Est/Nord
// RifDal,           RefFrom,            ;; Punto di riferimento tacheometrico
// RifAl,            RefTo,              ;; per il punto "Dal" e quello "Al"
// AngDal,           AngFrom,            ;; Angoli tacheometrici, misurati sui
// AngAl,            AngTo,              ;; punti "Dal" e "Al", riferiti ai
//                                       ;; punti di riferimento corrispondenti
// PuntoSez,         CutPnt,             ;; Sezione sul punto "Dal" o "Al"
// Sopra, Sotto,     Up, Down,           ;; Valori della sezione trasversa
// Dx, Sin,          Right, Left,
// Prof,             Prof,               ;; 'Dx', 'Sin' oppure 'R','L'
// Qual,             Qual                ;; Qualita` misura: numeri 0..100
//
 

##===== Dati di Misura =====================================================##
//
// L'elenco ordinato delle misure eseguite. Deve corrispondere con quanto
// definito in precedenza con la definizione dell' <Ordine=>
// La parentesi chiusa termina l'elenco delle misure.
// Il primo segmento elencato definisce il punto di riferimento metrico:
// il punto "Dal" ("From") assumera` le coordinate (0,0,0).
//

// Data=
Dati = (
//  Dal   Al  Dist Azimut  Pend  Note
      2    3  2.10  123.0  -25.0 Nota specifica del primo segmento
      3    4  1.80  220.0  -48.0
      4    5  2.11  106.0  -84.6
      5    6  3.80  106.0  -14.0
)
 

##===== Note sul Formato dei Dati ==========================================##
##
- Per i "nomi dei punti" e i "dati di misura", accettiamo i caratteri
  normalmente validi "a video", nei campi dei nomi dei punti e delle misure.
  - Nomi dei punti: '-', '.', '/', ':', '_', 'A'..'Z', 'a'..'z', '0'..'9'.
  - Dati di misura: '+', '-', '.', '0'..'9'.
  La virgola nei numeri e` accettata solo se la si e` definita come separatore
  decimale, con la parola chiave <Virgola> (oppure <DecPoint>), altrimenti e`
  soltanto considerata come separatore (opzionale) tra i dati e i nomi punto.
  Il separatore decimale di default e` il "punto" (all'inglese).
- Un dato che non si intende fornire (come ad esempio un Azimut inutile
  se il segmento e` verticale) deve essere riportato ugualmente in modo
  fittizio, mettendo al suo posto un asterisco ' * ', come "segnaposto".
  I campi omessi mediante l'asterisco '*' risultano "vuoti", per i campi misure
  veri e propri, o pari al valore del segmento precedente, per i parametri
  "PuntoSez" ("CutPnt", o punto di sezione trasversa), "Prof" ("Prof", o
  orientazione del profilo longitudinale), "Qual" ("Qual", o qualita` della
  misura).
- Il campo "Sopra" ("Up") puo` contenere l'altezza totale della sezione: cio`
  avviene quando il numero e` seguito, senza spazi in mezzo, da "t" o "T" (per
  es: 1.25t ). Questo vale sia in italiano che in codice internazionale.
- Posso "ricordare" l'ordine dei campi inserendo ogni tanto un commento, ma
  per cambiare l'ordine devo prima "chiudere" i dati con una parentesi chiusa,
  ri-definire il nuovo ordine, e poi "aprire" un nuovo elenco di misure.
- La parentesi chiusa deve comparire dopo un set completo di dati, altrimenti
  viene generato "errore".
- Qualunque stringa individuata dopo l'ultimo campo previsto dalla direttiva
  <Ordine=> viene interpretata come "nota" da registrare "privatamente"
  insieme ai dati del segmento.
  La "nota privata del segmento" termina:
  1) alla fine della riga, oppure
  2) con l'inizio di un commento inserito prima della fine riga, oppure
  3) con l'incontro della parentesi di chiusura. Se la nota include una
     parentesi chiusa che non deve essere intesa come "chiusura dei dati",
     e` necessario riportarla doppia, ad esempio come "))": sara` poi
     memorizzata come una sola.
  Attenzione che la "nota" privata del segmento e` riconosciuta a patto che
  segua direttamente, sulla stessa riga, l'ultimo dato di misura previsto
  per quel segmento, a parte l'eventuale virgola di separazione, ignorata; non
  si puo` mettere la "nota" sulla riga successiva.
  Una "nota" puo` essere lunga al massimo 64 caratteri.
- E` possibile inserire ovunque dei commenti, che non saranno acquisiti.
  Fa eccezione l'eventuale commento inserito prima di una "nota privata del
  segmento", poiche` il commento stesso concluderebbe l'acquisizione dei dati
  di quel segmento, causando il tentativo, da parte dell'interprete, di
  interpretare quelle che dovrebbero essere "note" come dati di un segmento
  successivo.
- Attenzione! Se una serie di segmenti e` stata introdotta definendone
  l'ordinamento dei campi con la parola chiave in una data lingua ("Order=",
  "Ordine="), il nome dei campi elencati deve essere introdotto nella stessa
  lingua. La stessa regola vale per quei campi dati che prevedono parole
  chiave, come ad esempio l'orientamento nel profilo longitudinale ('Dx'='R'),
  o la definizione del punto di sezione trasversa ('Dal'= 'From').
  La lingua di queste deve essere uguale a quella della parola chiave che
  introduce i dati ("Data=", "Dati=").
- ATTENZIONE: il modo "tacheometrico" non e` ancora supportato.
- ATTENZIONE: i "Dati Catastali" e i dati riguardanti i "Rilevatori, Strumenti,
  Precisione e Descrizione Tratta" non sono ancora implementati nel programma,
  e quindi l'importatore li ignora (non da "errore", ma non li usa).
##