|
Creating a query object from a text file
You can create a query object from
a delimited text file by using the cfhttp tag and specifying method="Get" and
the name attribute. This technique is a powerful
method for processing and handling text files. After you create
the query object, you can easily reference columns in the query
and perform other ColdFusion operations on the data.
ColdFusion processes text files in the following manner:
You
can specify a field delimiter with the delimiter attribute.
The default is a comma.
If data
in a field could include the delimiter character, surround the entire
field with the text qualifier character, which you can specify with
the textqualifier attribute. The default text qualifier
is the double-quotation mark (").
The textqualifier="" specifies that no text
qualifier exists. If you use textqualifier=""""
(four " marks in a row), it explicitly specifies the double-quotation
mark as the text qualifier.
If a text qualifier exists, surround all field values with
the text qualifier character.
To include the text qualifier character in a field, use a
double character. For example, if the text qualifier is ", use ""
to include a quotation mark in the field.
The
first row of text is always interpreted as column headings, so that
row is skipped. You can override the file column heading names by
specifying a different set of names in the columns attribute.
Specify a name for each column. You then use these new names in
your CFML code. However, ColdFusion never treats the first row of
the file as data.
When duplicate column heading names are encountered, ColdFusion
adds an underscore character to the duplicate column name to make
it unique. For example, if two CustomerID columns are found, the
second is renamed "CustomerID_".
Create a query from a text fileCreate a text file with the following content:
OrderID,OrderNum,OrderDate,ShipDate,ShipName,ShipAddress
001,001,01/01/01,01/11/01,Mr. Shipper,123 Main Street
002,002,01/01/01,01/28/01,Shipper Skipper,128 Maine Street
Save the file as text.txt in the myapps directory under your web_root.
Create a ColdFusion page with the following content:
<cfhttp method="Get"
url="http://127.0.0.1/myapps/text.txt"
name="juneorders"
textqualifier="">
<cfoutput query="juneorders">
OrderID: #OrderID#<br>
Order Number: #OrderNum#<br>
Order Date: #OrderDate#<br>
</cfoutput>
<!--- Now substitute different column names --->
<!--- by using the columns attribute --->
<hr>
Now using replacement column names<br>
<cfhttp method="Get"
url="http://127.0.0.1/myapps/text.txt"
name="juneorders"
columns="ID,Number,ODate,SDate,Name,Address"
textqualifier="">
<cfoutput query="juneorders">
Order ID: #ID#<br>
Order Number: #Number#<br>
Order Date: #SDate#<br>
</cfoutput>
Save the file as query_textfile.cfm in the myapps directory
under your web_root and view it in the web browser.
|