[QGIS-it-user] QGIS 2.18.22 LTR - Modifica arbitraria del nome del Campo

Sto notando un’anomalia in QGIS 2.18.22 che, purtroppo, tempo possa complicare la gestione e l’analisi dei dati in Tabella.
Vi chiedo di ripetere la seguente sequenza:
Createvi un layer di punti.
In Tabella potete anche lasciare il Campo “ID” che si genera in automatico, tanto non cambia niente.
Sempre in Tabella createvi tre (o più) layer di Testo impostati al numero di lettere che volete (80?, 250?, tanto non cambia niente) e chiamateli come vi pare, ad esempio:
“Mare”; “Città”; “Campagna”
Salvate
Disattivate la funzione Modifiche
Riattivate la funzione Modifiche
Cancellate, ad esempio, il Campo “Campagna”
Salvate
Disattivate la funzione Modifiche
e a questo punto dovreste notare che la prima lettera del nome del primo Campo a sinistra è stata sostituita con il simbolo della freccia, ossia se avete lasciato il Campo “ID” il nome si sarà trasformato in “->D”, se invece l’avete cancellato e il primo Campo a sinistra era “Mare” ora sarà diventato “->are”, ecc.

Infine se cancellate il Campo “->are”, automaticamente il Campo “Città” si rinonima in “->ittà”.
Il problema (grosso) è che se poi vado a fare le query, il Calcolatore di campi vuole il Campo rinominato ossia vuole il Campo “->ittà” o il Campo “->are” se no non va avanti.
Non mi sembra una difetto trascurabile.

Marco wrote

Sto notando un'anomalia in QGIS 2.18.22 che, purtroppo, tempo possa
complicare la gestione e l'analisi dei dati in Tabella.

Marco wrote

la prima lettera del nome del primo
Campo a sinistra è stata sostituita con il simbolo della freccia, ossia se
avete lasciato il Campo "ID" il nome si sarà trasformato in "->D"

Confermo il problema: su Windows 7 64 bit anche con QGIS 2.18.19 e 3.1.0
(4e38d0696e).

Effettivamente, dopo l'eliminazione di un campo e il successivo salvataggio,
il primo carattere del primo campo nel file .dbf relativo allo shape file
viene sostituito con il valore esadecimale 1A e visualizzato con il simbolo
"".

Non mi pare che questo bug sia presente fra i bug reports.

Bisognerebbe provare con QGIS 3.2.1.

-----
Andrea Giudiceandrea
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html

Il problema si presenta con ogni tipo di shapefile (anche creato con altri
software gis) che abbia almeno due campi e non contenga alcuna feature.

Penso proprio che il bug non sia in QGIS ma nel driver per il supporto del
formato shapefile in GDAL/OGR (nel quale la gestione del file .dbf è
importata dalla libreria shapelib di maptools [1]) e in particolare in
dbfopen.c [2].

Infatti la scrittura di default del carattere 0x1A quale end-of-file nel
file .dbf dello shapefile sembra sia stata implementata dalla versione 2.2
di GDAL: evidentemente c'è un bug nel modo in cui il carattere end-of-file
viene scritto nel file .dbf quando non contiene features.

[1] http://shapelib.maptools.org/
[2]
https://github.com/OSGeo/gdal/blob/master/gdal/ogr/ogrsf_frmts/shape/dbfopen.c
- https://github.com/rouault/shapelib_git_mirror/blob/master/dbfopen.c

-----
Andrea Giudiceandrea
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html

Ho scritto un bug report per GDAL https://github.com/OSGeo/gdal/issues/863 e
il codice è stato immediatamente corretto per risolvere il problema.

Il bug comunque rimarrà presente in QGIS fino all'implementazione della
prossima release della libreria GDAL.

-----
Andrea Giudiceandrea
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html

Grazie!

Il Gio 16 Ago 2018, 21:04 andreaerdna <andreaerdna@libero.it> ha scritto:

Ho scritto un bug report per GDAL https://github.com/OSGeo/gdal/issues/863 e
il codice è stato immediatamente corretto per risolvere il problema.

Il bug comunque rimarrà presente in QGIS fino all’implementazione della
prossima release della libreria GDAL.


Andrea Giudiceandrea

Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html


QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user