Guest User

Untitled

a guest
May 22nd, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. function parseCsvFile(fileName, callback){
  2. var stream = fs.createReadStream(fileName)
  3. var iteration = 0, header = [], buffer = ""
  4. var pattern = /(?:^|,)("(?:[^"]+)*"|[^,]*)/g
  5. stream.addListener('data', function(data){
  6. buffer+=data.toString()
  7. var parts = buffer.split('\r\n')
  8. parts.forEach(function(d, i){
  9. if(i == parts.length-1) return
  10. if(iteration++ == 0 && i == 0){
  11. header = d.split(pattern)
  12. }else{
  13. callback(buildRecord(d))
  14. }
  15. })
  16. buffer = parts[parts.length-1]
  17. })
  18.  
  19. function buildRecord(str){
  20. var record = {}
  21. str.split(pattern).forEach(function(value, index){
  22. if(header[index] != '')
  23. record[header[index].toLowerCase()] = value.replace(/"/g, '')
  24. })
  25. return record
  26. }
  27. }
Add Comment
Please, Sign In to add comment