VFP9 CSV Processing

Hi all. I have a csv file which contains about 18,000 lines (records).
I need to remove all records where field #2 does not match "Florida".

The format is:

"Arthur","Florida", (+28 more fields)
"Phillips","Alaska", (+28 more fields)

I'm assuming CHR(13) + CHR(10) for line feed.

What do you suggest as the fastest method to process this file and remove all but Florida records?

Thanks!

formadmirerAsked:
Who is Participating?
 
pcelbaCommented:
Version 2:
LOCAL lnH, lnOut, lcLine, lnPos

lnH = FOPEN("YourFile")
lnOut = FCREATE("NewFile")

DO WHILE NOT FEOF(lnH)
  lcLine = FGETS(lnH, 8000)
  lnPos = AT(["], lcLine, 3)
  IF lnPos > 0 AND SUBSTR(lcLine, lnPos, 9) == ["Florida"]
    = FPUTS(lnOut, lcLine)
  ENDIF
ENDDO

= FCLOSE(lnH)
= FCLOSE(lnout)

Open in new window

0
 
pcelbaCommented:
Following code should work. It is untested, missing error checks are on your own risk :-)
LOCAL lnH, lnOut, lcLine

lnH = FOPEN("YourFile")
lnOut = FCREATE("NewFile")

DO WHILE NOT FEOF(lnH)
  lcLine = FGETS(lnH, 8000)
  IF NOT ["Florida"] $ lcLine
    = FPUTS(lnOut, lcLine)
  ENDIF
ENDDO

= FCLOSE(lnH)
= FCLOSE(lnout)

Open in new window

0
 
pcelbaCommented:
Wow, it works in opposite way... and it does not check the second field and :-)

Wait a moment please
0
 
CaptainCyrilFounder, Software Engineer, Data ScientistCommented:
The way I would do it is this:

CREATE CURSOR import (name C(50), state C(50), field1, ..., field28)
APPEND FROM csv.csv TYPE CSV
DELETE FOR state = "Florida"
0
 
formadmirerAuthor Commented:
I was gone and when I returned had a message saying that it would be best if multiple matches were allowed, meaning not matching just 'Florida', but other selected states as well.

Since this is not the question I posted, I think it's only fair to you that I close this question, awarding points evenly, and re-ask a new question.

Thanks!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.