<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: looping through shapefile attribute table - java in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319355#M8327</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I'm still getting a java.lang.NullPointerException.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;Bummer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;On what line?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 09 Aug 2012 13:37:33 GMT</pubDate>
    <dc:creator>LeoDonahue</dc:creator>
    <dc:date>2012-08-09T13:37:33Z</dc:date>
    <item>
      <title>looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319352#M8324</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am new to arcobjects and GIS in general so excuse my noobness.&amp;nbsp; I'm trying to create a console based application that eventually will raster some polygons then do some stats on the rasters but right now I just want to be able to list all the features?(a single attribute from a layer's attribute table) from a given layer/shapefile in an existing mxd.&amp;nbsp; Right now, I can initialize the arc engine, open an mxd, list all the layers within that mxd and open a shapefile from a layer within the mxd.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What I need help with is being able to loop through the attribute table for the shapefile I opened from the mxd.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the code I have so far:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;public class EngineTest { &amp;nbsp;&amp;nbsp;&amp;nbsp; @SuppressWarnings("deprecation")&amp;nbsp; public static void main(String[] args) &amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Step 1: Initialize the Java Componet Object Model (COM) Interop. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EngineInitializer.initializeEngine();&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Step 2: Initialize a valid license. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new AoInitialize().initialize &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (esriLicenseProductCode.esriLicenseProductCodeEngine);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Step 3 : Invoke ArcObjects. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MapDocument mapDocument = new MapDocument();&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (mapDocument.isPresent("D:\\Tellus_Sedimentary_Basin.mxd")) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mapDocument.open("D:\\Tellus_Sedimentary_Basin.mxd",""); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mapDocument.setAuthor("Brian Varela"); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMap main_map = mapDocument.getMap(0); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureLayer layer = (IFeatureLayer) main_map.getLayer(0); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClass classLayer = layer.getFeatureClass(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IDataLayer2 dataLayer = (IDataLayer2) layer; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IDatasetName name = (IDatasetName) dataLayer.getDataSourceName(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspaceName workspace = name.getWorkspaceName(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ListLayers((Map)mapDocument.getMap(0)); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Layer "+layer.getName()+" located at "+workspace.getPathName()+" "+layer.getDisplayField()); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (IOException ex) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(ex.getMessage()); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("App failed."); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Step 4: Release the license. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new AoInitialize().shutdown(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("License released!"); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (IOException ex) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ex.printStackTrace(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;nbsp;&amp;nbsp;&amp;nbsp; } //End of method main.&amp;nbsp; public static void ListLayers(com.esri.arcgis.carto.Map map) {&amp;nbsp; try{ &amp;nbsp; for(int i=0; i&amp;lt;map.getLayerCount(); i++) &amp;nbsp; { &amp;nbsp;&amp;nbsp; System.out.println("Layer "+i+". "+map.getLayer(i).getName()); &amp;nbsp; }&amp;nbsp; }catch(AutomationException ae)&amp;nbsp; { &amp;nbsp; ae.printStackTrace();&amp;nbsp; }catch(IOException e)&amp;nbsp; { &amp;nbsp; e.printStackTrace();&amp;nbsp; } }&amp;nbsp; } //End of class&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Aug 2012 19:58:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319352#M8324</guid>
      <dc:creator>BrianVarela</dc:creator>
      <dc:date>2012-08-08T19:58:07Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319353#M8325</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Sorry for the short example.&amp;nbsp; You can probably figure out the missing parts.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void saveLayerEdits(String whereClause){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IQueryFilter queryFilter;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FeatureLayer fl = "however you get your featurelayer"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClass featureClass = fl.getFeatureClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Restrict the number of features to be updated using a QueryFilter and Where clause.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryFilter = new QueryFilter();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; queryFilter.setWhereClause(fl.getOIDFieldName() + " = " + whereClause);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Use IFeatureClass.Update to populate IFeatureCursor.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureCursor updateCursor = featureClass.IFeatureClass_update(queryFilter, false);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int theFieldIndex = featureClass.findField("The name of the field you want to update");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Loop through the cursor and update the values
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeature feature = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((feature = updateCursor.nextFeature()) != null){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; feature.setValue(theFieldIndex, "The value you want this field to have");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; updateCursor.updateFeature(feature);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If the cursor is no longer needed, release it.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cleaner.release(updateCursor);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (AutomationException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To get values call the getValue method and don't use the updateCursor, use a search cursor if you just want to read data from your shapefile.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If just searching, then:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;featureClass.IFeatureClass_update(queryFilter, false);&amp;nbsp; becomes - featureClass.search(queryFilter, false);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;setValue(index, value); becomes - getValue(index);&amp;nbsp; and just remove the updateFeature line after that.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:10:56 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319353#M8325</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2021-12-11T15:10:56Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319354#M8326</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you for your help but I'm still getting a java.lang.NullPointerException.&amp;nbsp; I didn't need the query part of your method so I reworked it a little bit:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My main method:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;.
.
.
IMap main_map = mapDocument.getMap(0);
IFeatureLayer layer = (IFeatureLayer) main_map.getLayer(0);
listAttributes((FeatureLayer) layer);&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The list attributes method:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;public static void listAttributes(com.esri.arcgis.carto.FeatureLayer fl)
{
 
 try {
&amp;nbsp; IFeatureClass featureClass = fl.getFeatureClass();
&amp;nbsp; IFeatureCursor updateCursor = featureClass.search(null, false);
&amp;nbsp; int theFieldIndex = featureClass.findField("BASIN_NAME");
&amp;nbsp; IFeature feature = null;
&amp;nbsp; while((feature = updateCursor.nextFeature()) != null)
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; System.out.println( (String)feature.getValue(theFieldIndex));
&amp;nbsp; }
&amp;nbsp; } catch (AutomationException e) {
&amp;nbsp; e.printStackTrace();
 } catch (IOException e) {
&amp;nbsp; e.printStackTrace();
 }
}&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:10:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319354#M8326</guid>
      <dc:creator>BrianVarela</dc:creator>
      <dc:date>2021-12-11T15:10:58Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319355#M8327</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I'm still getting a java.lang.NullPointerException.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;Bummer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;On what line?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Aug 2012 13:37:33 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319355#M8327</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2012-08-09T13:37:33Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319356#M8328</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Bummer.&lt;BR /&gt;&lt;BR /&gt;On what line?&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm still getting the NullPointer on&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro"&gt;IFeatureCursor updateCursor = featureClass.search(null, false);&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the documentation says:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style:italic;"&gt;"If a null value is passed to the filter parameter, the feature cursor will return all of the features from the feature class."&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Aug 2012 13:50:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319356#M8328</guid>
      <dc:creator>BrianVarela</dc:creator>
      <dc:date>2012-08-09T13:50:03Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319357#M8329</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;That is probably because your fl is an IFeatureLayer, when you need a FeatureLayer.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Aug 2012 15:07:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319357#M8329</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2012-08-09T15:07:58Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319358#M8330</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;That is probably because your fl is an IFeatureLayer, when you need a FeatureLayer.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;How can I get the FeatureLayer from an mxd?&amp;nbsp; I tried casting it from the IMap:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro"&gt;listAttributes((FeatureLayer) main_map.getLayer(0));&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;but that didn't work; I've been trying to use the API but there is just a lot there.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Aug 2012 15:26:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319358#M8330</guid>
      <dc:creator>BrianVarela</dc:creator>
      <dc:date>2012-08-09T15:26:10Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319359#M8331</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;FeatureLayer fl = (FeatureLayer) getLayerByName("your layer name as it is spelled in the map document");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * ESRI sample method to get feature class layer by name, instead of index.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @param layerName the layer name as &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt;. 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @return layer as &amp;lt;code&amp;gt;FeatureLayer&amp;lt;/code&amp;gt;.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp; public FeatureLayer getLayerByName(String layerName) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FeatureLayer layer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; s_iMap.getLayerCount(); i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (s_iMap.getLayer(i).getName().equalsIgnoreCase(layerName)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = (FeatureLayer) s_iMap.getLayer(i);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (AutomationException ae) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ae.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Returns the featurelayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return layer;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;s_iMap is a reference to the current IMap of your map document.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:11:01 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319359#M8331</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2021-12-11T15:11:01Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319360#M8332</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;FeatureLayer fl = (FeatureLayer) getLayerByName("your layer name as it is spelled in the map document");&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * ESRI sample method to get feature class layer by name, instead of index.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @param layerName the layer name as &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt;. 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @return layer as &amp;lt;code&amp;gt;FeatureLayer&amp;lt;/code&amp;gt;.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp; public FeatureLayer getLayerByName(String layerName) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FeatureLayer layer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; s_iMap.getLayerCount(); i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (s_iMap.getLayer(i).getName().equalsIgnoreCase(layerName)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = (FeatureLayer) s_iMap.getLayer(i);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (AutomationException ae) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ae.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Returns the featurelayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return layer;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;s_iMap is a reference to the current IMap of your map document.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again but I tried to use that method and I still get the NullPointer =( &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I then looked at the code and it looks like ESRI's method was doing the same thing I tried before except they loop through the layers looking for the name that matches:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ESRI's code that creates the Feature layer:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;layer = (FeatureLayer) s_iMap.getLayer(i)&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;looks like what I was trying:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;listAttributes((FeatureLayer) main_map.getLayer(0))&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:11:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319360#M8332</guid>
      <dc:creator>BrianVarela</dc:creator>
      <dc:date>2021-12-11T15:11:04Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319361#M8333</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Well, keep at it.&amp;nbsp; Sooner or later you will debug your code and realize that the method is not the problem.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In your code, what is to the left of this line?&amp;nbsp; IFeatureLayer or FeatureLayer?&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro"&gt;listAttributes((FeatureLayer) main_map.getLayer(0))&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Aug 2012 19:45:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319361#M8333</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2012-08-09T19:45:16Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319362#M8334</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Well, keep at it.&amp;nbsp; Sooner or later you will debug your code and realize that the method is not the problem.&lt;BR /&gt;&lt;BR /&gt;In your code, what is to the left of this line?&amp;nbsp; IFeatureLayer or FeatureLayer?&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;listAttributes((FeatureLayer) main_map.getLayer(0))&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;There is nothing to the left in my code;&amp;nbsp; the listAttributes method I created doesn't return anything and only takes a FeatureLayer as an import:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;public static void listAttributes(com.esri.arcgis.carto.FeatureLayer fl)
{
 
 try {
&amp;nbsp; IFeatureClass featureClass = fl.getFeatureClass();
&amp;nbsp; IFeatureCursor updateCursor = featureClass.search(null, false);
&amp;nbsp; int theFieldIndex = featureClass.findField("BASIN_NAME");
&amp;nbsp; IFeature feature = null;
&amp;nbsp; while((feature = updateCursor.nextFeature()) != null)
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; System.out.println( (String)feature.getValue(theFieldIndex));
&amp;nbsp; }
&amp;nbsp; } catch (AutomationException e) {
&amp;nbsp; e.printStackTrace();
 } catch (IOException e) {
&amp;nbsp; e.printStackTrace();
 }
}&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again for all your help - I know you are right &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;"keep at it. Sooner or later you will debug your code and realize that the method is not the problem."&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; I'm just so new to the arcobjects API and ESRI structure that I know it will take some time; I'm trying to get the java sdk so I can look at some samples but none of the people who have access to the EDN at my work can find the download.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:11:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319362#M8334</guid>
      <dc:creator>BrianVarela</dc:creator>
      <dc:date>2021-12-11T15:11:06Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319363#M8335</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt; the listAttributes method I created doesn't return anything and only takes a FeatureLayer as an import&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;About the 8th time I've edited this...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you post more of the code for the thing you are working on?&amp;nbsp; Include how you are calling listAttributes(FeatureLayer);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The samples are online here:&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://help.arcgis.com/en/sdk/10.0/java_ao_adf/conceptualhelp/engine/0001/000100043985000000.htm"&gt;http://help.arcgis.com/en/sdk/10.0/java_ao_adf/conceptualhelp/engine/0001/000100043985000000.htm&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Aug 2012 20:13:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319363#M8335</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2012-08-09T20:13:02Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319364#M8336</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm starting to think that it isn't so much the code but the logic that I'm having problems with; the way I'm thinking about it is:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1. initialize engine&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. open mdx&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3. find which layers mdx has&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;4. open layer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;5. open attribute table&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I know there is a problem at step 5 so am I missing something between step 4 and 5? Is there some intermediate step between opening a layer and opening the data within that layer?&amp;nbsp; Is the data in a shapefile encapsulated in a personal geodatabase?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is all the current code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;public class EngineTest
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; @SuppressWarnings("deprecation")
 public static void main(String[] args)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Step 1: Initialize the Java Componet Object Model (COM) Interop.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EngineInitializer.initializeEngine();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Step 2: Initialize a valid license.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new AoInitialize().initialize
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (esriLicenseProductCode.esriLicenseProductCodeEngine);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Step 3 : Invoke ArcObjects.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MapDocument mapDocument = new MapDocument();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (mapDocument.isPresent("D:\\Tellus_Sedimentary_Basin.mxd"))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mapDocument.open("D:\\Tellus_Sedimentary_Basin.mxd","");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mapDocument.setAuthor("Brian Varela");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMap main_map = mapDocument.getMap(0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureLayer layer = (IFeatureLayer) main_map.getLayer(0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClass classLayer = layer.getFeatureClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IDataLayer2 dataLayer = (IDataLayer2) layer;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IDatasetName name = (IDatasetName) dataLayer.getDataSourceName();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspaceName workspace = name.getWorkspaceName();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //System.out.println("Number of Maps in this document: "+mapDocument.getMapCount());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("SUCCESS "+mapDocument.getDocumentFilename()+" ArcMap file opened - Author: "+mapDocument.getAuthor());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ListLayers((Map)mapDocument.getMap(0));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Opened Layer "+layer.getName()+" located at "+workspace.getPathName()+" "+layer.getDisplayField());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FeatureLayer fl = (FeatureLayer) getLayerByName(main_map, layer.getName());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listAttributes(fl);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (IOException ex)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(ex.getMessage());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("App failed.");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Step 4: Release the license.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new AoInitialize().shutdown();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("License released!");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (IOException ex)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ex.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; } //End of method main.
public static void listAttributes(com.esri.arcgis.carto.FeatureLayer fl)
{
 
 try {
&amp;nbsp; IFeatureClass featureClass = fl.getFeatureClass();
&amp;nbsp; IFeatureCursor updateCursor = featureClass.search(null, false);
&amp;nbsp; int theFieldIndex = featureClass.findField("BASIN_NAME");
&amp;nbsp; IFeature feature = null;
&amp;nbsp; while((feature = updateCursor.nextFeature()) != null)
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; System.out.println( (String)feature.getValue(theFieldIndex));
&amp;nbsp; }
&amp;nbsp; } catch (AutomationException e) {
&amp;nbsp; e.printStackTrace();
 } catch (IOException e) {
&amp;nbsp; e.printStackTrace();
 }
}
public static void ListLayers(com.esri.arcgis.carto.Map map)
{
 try{
&amp;nbsp; for(int i=0; i&amp;lt;map.getLayerCount(); i++)
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; System.out.println("Layer "+i+". "+map.getLayer(i).getName());
&amp;nbsp; }
 }catch(AutomationException ae)
 {
&amp;nbsp; ae.printStackTrace();
 }catch(IOException e)
 {
&amp;nbsp; e.printStackTrace();
 }
}

/**
 * ESRI sample method to get feature class layer by name, instead of index.
 * @param layerName the layer name as &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt;. 
 * @return layer as &amp;lt;code&amp;gt;FeatureLayer&amp;lt;/code&amp;gt;.
 */
public static FeatureLayer getLayerByName(IMap s_iMap, String layerName) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; FeatureLayer layer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; s_iMap.getLayerCount(); i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (s_iMap.getLayer(i).getName().equalsIgnoreCase(layerName)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer = (FeatureLayer) s_iMap.getLayer(i);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (AutomationException ae) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ae.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Returns the featurelayer
&amp;nbsp;&amp;nbsp;&amp;nbsp; return layer;
}

}

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:11:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319364#M8336</guid>
      <dc:creator>BrianVarela</dc:creator>
      <dc:date>2021-12-11T15:11:09Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319365#M8337</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro"&gt;IFeatureClass featureClass = fl.getFeatureClass();&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This line is your problem, but stems from another issue.&amp;nbsp; The featureClass variable in listAtributes is null, so when you try to call search on featureClass, you're getting the null pointer exception.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Why is featureClass null?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Aug 2012 19:53:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319365#M8337</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2012-08-10T19:53:05Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319366#M8338</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro"&gt;IFeatureClass featureClass = fl.getFeatureClass();&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;This line is your problem, but stems from another issue.&amp;nbsp; The featureClass variable in listAtributes is null, so when you try to call search on featureClass, you're getting the null pointer exception.&lt;BR /&gt;&lt;BR /&gt;Why is featureClass null?&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Seriously thanks for all your help but I was reading some documentation online and I think I'm missing a workspace.&amp;nbsp; I'm going to leave this for now, relax this weekend, and comeback to this monday morning.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Aug 2012 20:11:21 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319366#M8338</guid>
      <dc:creator>BrianVarela</dc:creator>
      <dc:date>2012-08-10T20:11:21Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319367#M8339</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Alright, made a little progress after taking a break - After having so much trouble opening the attribute table from the shapefile I decided to try to just read the *.dbf file directly.&amp;nbsp; I created a new method and was able to open the dbf, list the heading and print out all the records.&amp;nbsp; Then I decided to go back and try the ESRI way; I found the example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;Open a DBase (dbf) file

In this case, pathToFile is the path to the folder holding the dbf file. Additionally, the file extension, .dbf, must be included when specifying the name of the DBase file.
[Java]

ShapefileWorkspaceFactory shapefileWorkspaceFactory = new ShapefileWorkspaceFactory();
Workspace workspace = new Workspace(shapefileWorkspaceFactory.openFromFile(pathToFile,0));
Table table = new Table(workspace.openTable(fileName));&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;so I created a new method that takes two strings one for the path to the folder containing the shapefile and the second as the filename to the dbf:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;public static void ArcDBF(String path, String fileName)
{
 try{
&amp;nbsp; ShapefileWorkspaceFactory shapefileWorkspaceFactory = new ShapefileWorkspaceFactory();
&amp;nbsp; Workspace workspace = new Workspace(shapefileWorkspaceFactory.openFromFile(path,0));
&amp;nbsp; Table table = new Table(workspace.openTable(fileName));
&amp;nbsp; System.out.println("Success!");
 }catch(AutomationException ae)
 {
&amp;nbsp; ae.printStackTrace();
 }catch(IOException e)
 {
&amp;nbsp; e.printStackTrace();
 }
}&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; then I call the method from my main:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;mapDocument.open("D:\\Tellus_Sedimentary_Basin.mxd","");
IMap main_map = mapDocument.getMap(0);
IFeatureLayer layer = (IFeatureLayer) main_map.getLayer(0);
IDataLayer2 dataLayer = (IDataLayer2) layer;
IDatasetName name = (IDatasetName) dataLayer.getDataSourceName();
IWorkspaceName workspace = name.getWorkspaceName();
ArcDBF(workspace.getPathName()+"\\", "Tellus_Sedimentary_Basins_Layer.dbf");&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;but when I run the code I get these errors:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt; at com.esri.arcgis.datasourcesfile.ShapefileWorkspaceFactory.openFromFile(Unknown Source)
 at EngineTest.ArcDBF(EngineTest.java:113)
 at EngineTest.main(EngineTest.java:69)

Unhandled Exception: 
Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'ESRI.DADF.Core.dll' or one of its dependencies. The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))
File name: 'ESRI.DADF.Core.dll'


System.IO.FileLoadException: Could not load file or assembly 'ESRI.DADF.Core.dll' or one of its dependencies. The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))
File name: 'ESRI.DADF.Core.dll'&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The command at &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;EngineTest.java:113&lt;/SPAN&gt;&lt;SPAN&gt; is:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;Workspace workspace = new Workspace(shapefileWorkspaceFactory.openFromFile(path,0));&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:11:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319367#M8339</guid>
      <dc:creator>BrianVarela</dc:creator>
      <dc:date>2021-12-11T15:11:12Z</dc:date>
    </item>
    <item>
      <title>Re: looping through shapefile attribute table - java</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319368#M8340</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I think I may have figured it out!&amp;nbsp; After looking up the last error I found a link to this post:&lt;/SPAN&gt;&lt;BR /&gt;&lt;A class="jive-link-external-small" href="http://forums.esri.com/Thread.asp?c=159&amp;amp;f=1706&amp;amp;t=237300" rel="nofollow" target="_blank"&gt;http://forums.esri.com/Thread.asp?c=159&amp;amp;f=1706&amp;amp;t=237300&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And it turns out that my license never initialized. Once I fixed the license issue the program ran without any errors.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Aug 2012 20:05:46 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/looping-through-shapefile-attribute-table-java/m-p/319368#M8340</guid>
      <dc:creator>BrianVarela</dc:creator>
      <dc:date>2012-08-14T20:05:46Z</dc:date>
    </item>
  </channel>
</rss>

