----Messaggio originale---- Da: francescobocca...@libero.it Data: 13/01/2013 18.03 A: <gioha...@gmail.com> Ogg: R: Re: [Qgis-developer] Commit delete features Hi Giovanni,this is my piece of code: provider = layer.dataProvider() feat = QgsFeature() allAttrs = provider.attributeIndexes() provider.select(allAttrs) caps = layer.dataProvider().capabilities() fldDesc = provider.fieldNameIndex("values") layer.startEditing() while provider.nextFeature( feat ): id = feat.id() attrs = feat.attributeMap() for (k,attr) in attrs.iteritems(): if k == fldDesc: if attr != 2.5: layer.dataProvider().deleteFeatures([ id ]) layer.commitChanges() layer.endEditCommand() but it doesn't work. Any suggestions? Thanks Francesco ----Messaggio originale---- Da: gioha...@gmail.com Data: 13/01/2013 17.54 A: <francescobocca...@libero.it> Ogg: Re: [Qgis-developer] Commit delete features Have you called layer.startEditing()? giovanni Sent from Nexus Il giorno 13/gen/2013 17:51, "francescobocca...@libero.it" <francescobocca...@libero.it> ha scritto: Hi all, i would like to delete the features in a shapefiles that haven't a specific field value. See below: provider = layer.dataProvider() feat = QgsFeature() allAttrs = provider.attributeIndexes() provider.select(allAttrs) caps = layer.dataProvider().capabilities() fldDesc = provider.fieldNameIndex("values") #values is field name while provider.nextFeature( feat ): id = feat.id() attrs = feat.attributeMap() for (k,attr) in attrs.iteritems(): if k == fldDesc: if attr != 2.5: layer.dataProvider().deleteFeatures([ id ]) layer.commitChanges() but it seems doesn't work. Any suggestion? Thanks Francesco _______________________________________________ Qgis-developer mailing list Qgis-developer@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/qgis-developer
_______________________________________________ Qgis-developer mailing list Qgis-developer@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/qgis-developer