Skip to content

Instantly share code, notes, and snippets.

@ibrahimgunduz34
Created November 14, 2021 15:18
Show Gist options
  • Select an option

  • Save ibrahimgunduz34/1e367cbe2b38fc68d1fb025ffdd683f9 to your computer and use it in GitHub Desktop.

Select an option

Save ibrahimgunduz34/1e367cbe2b38fc68d1fb025ffdd683f9 to your computer and use it in GitHub Desktop.
`use strict`;
const COLUMN_DELIMITER = ';'
const LINE_DELIMITER = '\n';
const SOURCE_FILE = 'sample.txt';
const OUTPUT_FILE = 'output.txt';
const fs = require('fs');
const buffer = [];
const readCallback = (err, contents) => {
if (err) {
console.error('Read was failed. Err: ' + err);
return;
}
const lines = contents.toString().split(LINE_DELIMITER);
for (let i = 0; i < lines.length-1; i++) {
const line = lines[i];
const row = line.split(COLUMN_DELIMITER);
const trimmedRow = trimProcessor(row);
const processedRow = nameProcessor(trimmedRow);
buffer.push(processedRow.join(COLUMN_DELIMITER));
}
fs.writeFile(OUTPUT_FILE, buffer.join(LINE_DELIMITER), writeCallback);
}
const writeCallback = (err) => {
if (err) {
console.error('Write was failed. Err: ' + err);
return;
}
console.log('The process has been completed.');
}
const trimProcessor = (row) => {
const clonnedRow = Array.from(row);
return clonnedRow.map(column => column.trim());
}
const nameProcessor = (row) => {
const clonnedRow = Array.from(row);
const firstName = clonnedRow[0].toUpperCase();
const lastName = clonnedRow[1].toUpperCase();
const fullName = firstName + ' ' + lastName;
clonnedRow.splice(0, 2, fullName);
return clonnedRow;
}
fs.readFile(SOURCE_FILE, readCallback);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment