Показать сообщение отдельно
  #1 (permalink)  
Старый 08.02.2021, 20:59
Интересующийся
Отправить личное сообщение для AleBa Посмотреть профиль Найти все сообщения от AleBa
 
Регистрация: 13.06.2020
Сообщений: 18

Форматирование в csv
Добрый день.
Подскажите как правильно преобразовать данные в csv?

В текстовом файле лежат следующие данные (кол-во не ограничено):
ОАО Ромашка-4 (Новокузнецк),водитель,Иван ов Павел Аркадьевич,,1234,123411
Ван Александр Александрович,1478
Шмид Иван Викторович,5555

Функция принимает на вход файл и должна вернуть следующее :
CompanyName,Occupation,LastName,FirstName,MiddleNa me,Phone,PersonalNr,TerminalPassword
ОАО Ромашка-4 (Новокузнецк),водитель,Иван ов,Павел,Аркадьевич,,1234,123411
ОАО Ромашка-4 (Новокузнецк),водитель,Ван, лександр,Александрович,,1478 ,147811
ОАО Ромашка-4 (Новокузнецк),водитель,Шмид ,Иван,Викторович,,5555,555511

Мой кривой код и репл для удобства:
https://repl.it/@AlexBalykin/csv
import fs from 'fs';
import path from 'path';

const getPath = (filePath) => fs.readFileSync(path.resolve(filePath), 'utf8');
const csvHeader =
  'CompanyName,Occupation,LastName,FirstName,MiddleName,Phone,PersonalNr,TerminalPassword';
const data = getPath('input').split(',');
const str = data.map((i) => i);

class Csv {
  items = [];

  add(CompanyName) {
    const items = this.get();
    items.push(CompanyName);
  }

  get() {
    return this.items;
  }

  getFull() {
    return this.items.map(
      (i) =>
        `${i.CompanyName}${','}${i.Occupation}${','}${i.LastName}${','}${
          i.FirstName
        }${','}${i.MiddleName}${','}${i.Phone}${i.PersonalNr}${','}${
          i.TerminalPassword
        }`
    );
  }
}
const csv = new Csv();
csv.add({
  CompanyName: str[0],
  Occupation: str[1],
  LastName: str[2].split(' ')[0],
  FirstName: str[2].split(' ')[1],
  MiddleName: str[2].split(' ')[2],
  Phone: str[3],
  PersonalNr: str[4],
  TerminalPassword: `${str[4]}${11}`,
});
console.log(csv.getFull().join('\n'));

Последний раз редактировалось AleBa, 08.02.2021 в 21:08.
Ответить с цитированием