<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xml:base="https://www.webmaster-forums.net/crss/node/1019010" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title></title>
    <link>https://www.webmaster-forums.net/crss/node/1019010</link>
    <description></description>
    <language>en</language>
          <item>
    <title></title>
    <link>https://www.webmaster-forums.net/server-side-scripting/delete-csv-record#comment-1112971</link>
    <description> &lt;p&gt;i believe PHP has built in csv functions, although i&#039;ve never used them.  as for perl, i wrote a script to convert .csv files into tab-delimmeted files because csv is such a ***** to work with.  also, you must consider microsoft has a different implementation of csv than most other companies (doesnt that apply to everything?)&lt;/p&gt;
&lt;p&gt;anyways, here it is, hope it&#039;s helpful:&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;# parse_csv.pl &lt;br /&gt;# convert a .csv file into tab-delimmeted text file&lt;br /&gt;# usage: perl parse_csv.pl infile outfile&lt;br /&gt;# example: perl parse_csv.pl /home/myfiles/mydata.csv /home/myfiles/mydata.txt&lt;br /&gt;&lt;br /&gt;my ($infile) = @ARGV;&lt;br /&gt;my $tmpfile = $infile;&lt;br /&gt;$tmpfile =~ s/^.*[\\\/]//;&lt;br /&gt;$tmpfile =~ s/[\\\/]//g;&lt;br /&gt;$tmpfile = &amp;#039;/tmp/tmp_&amp;#039; . $tmpfile;&lt;br /&gt;&lt;br /&gt;## hack to get rid of multi-line records&lt;br /&gt;open(INFILE,$infile);&lt;br /&gt;open(TMPFILE,&amp;quot;&amp;gt;$tmpfile&amp;quot;);&lt;br /&gt;while(&amp;lt;INFILE&amp;gt;) {&lt;br /&gt;	$_ =~ s/\s*$//;&lt;br /&gt;	next if $_ eq &amp;#039;&amp;#039;;&lt;br /&gt;&lt;br /&gt;	if($_ =~ m/,&amp;quot;[^,&amp;quot;]*$/) {&lt;br /&gt;		print TMPFILE &amp;quot;$_ &amp;quot;;&lt;br /&gt;	}&lt;br /&gt;	else {&lt;br /&gt;		print TMPFILE &amp;quot;$_\n&amp;quot;;&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;close INFILE;&lt;br /&gt;close TMPFILE;&lt;br /&gt;&lt;br /&gt;### parse the file&lt;br /&gt;open(TMPFILE,$tmpfile);&lt;br /&gt;my $rowcnt = 0;&lt;br /&gt;&lt;br /&gt;while(&amp;lt;TMPFILE&amp;gt;) {&lt;br /&gt;	++$rowcnt;&lt;br /&gt;&lt;br /&gt;	my $newline = &amp;quot;&amp;quot;;&lt;br /&gt;	my @row = ();&lt;br /&gt;&lt;br /&gt;	while ($_ =~ /\G\s*(?!$)(&amp;quot;[^&amp;quot;]*(?:&amp;quot;&amp;quot;[^&amp;quot;]*)*&amp;quot;|[^,&amp;quot;]*),?/g) {&lt;br /&gt;		push @row, $1;&lt;br /&gt;		$row[-1] =~ s/\s+$//;&lt;br /&gt;		if ($row[-1] =~ s/^&amp;quot;//) {&lt;br /&gt;			chop $row[-1]; $row[-1] =~ s/&amp;quot;&amp;quot;/&amp;quot;/g;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	map {&lt;br /&gt;		$_ =~ s/\t/ /g;&lt;br /&gt;		$newline .= &amp;quot;$_\t&amp;quot;;&lt;br /&gt;	} @row;&lt;br /&gt;&lt;br /&gt;	$newline =~ s/\t$/ /;&lt;br /&gt;	print &amp;quot;$newline\n&amp;quot;;&lt;br /&gt;}&lt;br /&gt;close(TMPFILE);&lt;br /&gt;unlink($tmpfile);&lt;br /&gt;&lt;br /&gt;exit;&lt;/code&gt;&lt;/div&gt;&#039;&lt;/p&gt;
&lt;p&gt;once it&#039;s in tab-delimmeted format, you can access each &#039;field&#039; by doing something like this:&lt;br /&gt;
my @fields = split(/\t/, $row);&lt;/p&gt;
&lt;p&gt;if you need to keep the data in csv format, you can modify the above code to check each row for specific values and either print the csv line back to file (rather than the tabbed line) or skip to the next line&lt;/p&gt;
 </description>
     <pubDate>Mon, 26 Aug 2002 16:23:39 +0000</pubDate>
 <dc:creator>ROB</dc:creator>
 <guid isPermaLink="false">comment 1112971 at https://www.webmaster-forums.net</guid>
  </item>
  </channel>
</rss>
