<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-7">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40"><head><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EL link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span lang=EN-US>When you insert an object in a shape file, a new entry is made in the dbf file. However the entry is empty. Shapefiles and dbf files should always have the same number of records. The connections between shape and dbf is one to one record. <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Now, for the specific api, you should check these addresses:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><a href="http://shapelib.maptools.org/shp_api.html"><span lang=EN-US>http://shapelib.maptools.org/shp_api.html</span></a><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><a href="http://shapelib.maptools.org/dbf_api.html"><span lang=EN-US>http://shapelib.maptools.org/dbf_api.html</span></a><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>If you need to add specific data to a shape, then, before creating the first record you should use the DBFAddField function to create fields in the dbf file that hold your data. <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>e.g. <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>int myDataStringPos,myDataIntPos;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>hDBF = DBFCreate(“T:\\shapefolder\\test.dbf”);<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>myDataStringPos =DBFAddField(hDBF,”myDataString”,FTString,20,0);<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>myDataIntPos =DBFAddField(hDBF,”myDataInt”,FTInteger,4,0);<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>The, right after using SHPWriteObject you should use its result (position of new record ) to enter the data in the dbf file.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>e.g. <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>int aRec; <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>aRec= SHPWriteObject( hSHP, -1, psObject ); <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>DBFWriteStringAttribute(hDBF,aRec, myDataStringPos,”someDataString”);</span><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>DBFWriteIntegerAttribute(hDBF,aRec, myDataIntPos,25000);<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Hope this helps,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Vassilis Perantzakis</span><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> shapelib-bounces@lists.maptools.org [mailto:shapelib-bounces@lists.maptools.org] <b>On Behalf Of </b>Rakib Solaimani<br><b>Sent:</b> Monday, May 30, 2011 10:04 PM<br><b>To:</b> shapelib@lists.maptools.org<br><b>Subject:</b> [Shapelib] Point shp file is created with empty dbf.<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Hi,<br><br>I am new to shapelib. I want to create a simple shp file. I want to draw point on specific latitude and longitude. I tried to execute the following code which I found by google research.<br>I successfully create the shp file and viewed it by ShapeViewer but I found my dbf file empty. I am wondering if data in dbf file is created while creating new shp file or should it be created<br>manually? If so how can I link shp and dbf file. Basically I want to apply some rule on dbf file. Can anyone help me please. Here I attach my sample code.<br><br><br> #include "stdafx.h"<br> #include <iostream<br> #include <cstdlib<br> #include "shapefil.h"<br> #include <string<br><br> using namespace std;<br><br> int _tmain(int argc, _TCHAR* argv[])<br> {<br> SHPHandle hSHP;<br> DBFHandle hDBF;<br> int nShapeType, Vertices;<br> string shape_name, Col1;<br> SHPObject *psObject;<br><br> double X[3], Y[3];<br><br> X[0] = -130;<br> Y[0]= 54;<br> <br> X[1] = -120;<br> Y[1]= 30;<br> <br> X[2] = -100;<br> Y[2]= 10;<br> <br> nShapeType = MultiPoint;<br> Vertices = 3;<br><br><br> hSHP = SHPCreate( "T:\\shapefolder\\test.shp",<o:p></o:p></p><div id=":7h"><p class=MsoNormal>nShapeType);<br><br> hDBF = DBFCreate(T:\\shapefolder\\test.dbf);<br><br> psObject = SHPCreateSimpleObject( nShapeType, Vertices, X, Y, NULL);<br> SHPWriteObject( hSHP, -1, psObject );<br><br><br> DBFClose( hDBF );<br> SHPClose( hSHP );<br><br><br><br> return 0;<br> }<o:p></o:p></p></div></div></body></html>