diff --git a/app/data/zadanie01/sum.txt b/app/data/zadanie01/sum.txt index e69de29..615088b 100644 --- a/app/data/zadanie01/sum.txt +++ b/app/data/zadanie01/sum.txt @@ -0,0 +1 @@ +108 \ No newline at end of file diff --git a/app/data/zadanieDnia/test.txt b/app/data/zadanieDnia/test.txt index 47c17e3..1034ba5 100644 --- a/app/data/zadanieDnia/test.txt +++ b/app/data/zadanieDnia/test.txt @@ -1,7 +1,7 @@ -You Don't Know JS: ES6 & Beyond -Foreword +YoU DoN'T KnOw JS: ES6 & BEyOnD +FOrEwOrD -Kyle Simpson is a thorough pragmatist. +KYlE SiMpSoN Is a tHoRoUgH PrAgMaTiSt. -I can't think of higher praise than this. To me, these are two of the most important qualities that a software developer must have. That's right: must, not should. Kyle's keen ability to tease apart layers of the JavaScript programming language and present them in understandable and meaningful portions is second to none. -[https://github.com/getify/You-Dont-Know-JS/blob/master/es6%20%26%20beyond/foreword.md] \ No newline at end of file +I cAn't tHiNk oF HiGhEr pRaIsE ThAn tHiS. TO Me, ThEsE ArE TwO Of tHe mOsT ImPoRtAnT QuAlItIeS ThAt a sOfTwArE DeVeLoPeR MuSt hAvE. THaT'S RiGhT: mUsT, nOt sHoUlD. KYlE'S KeEn aBiLiTy tO TeAsE ApArT LaYeRs oF ThE JaVaScRiPt pRoGrAmMiNg lAnGuAgE AnD PrEsEnT ThEm iN UnDeRsTaNdAbLe aNd mEaNiNgFuL PoRtIoNs iS SeCoNd tO NoNe. +[HtTpS://GiThUb.cOm/gEtIfY/YoU-DoNt-KNoW-JS/bLoB/MaStEr/eS6%20%26%20bEyOnD/FoReWoRd.mD] \ No newline at end of file diff --git a/app/zadanie01.js b/app/zadanie01.js index 8c20173..cee860a 100644 --- a/app/zadanie01.js +++ b/app/zadanie01.js @@ -1 +1,47 @@ -//Twój kod \ No newline at end of file +/** + 1. Przetwarzanie danych + Napisz program, w którym otworzysz plik znajdujący się w app/data/zadanie01/input.json (z poziomu Twojego + programu to będzie plik ./data/zadanie01/input.json). + + Jest to tablica liczb w formacie JSON. Aby ją rozkodować do tablicy JS skorzystaj z JSON.parse(daneWejsciowe). + + Następnie zsumuj wszystkie liczby, a wynik zapisz tekstem do pliku app/data/zadanie01/sum.txt. + + Pamiętaj, że funkcje odczytu i zapisu są asynchronicze! Twój kod powinien odpowiadać takiemu pseudokodowi: + + ODCZYT PLIKU + KIEDY SKOŃCZY - CALLBACK: + ZMIANA JSONA NA TABLICĘ + WYKONANIE SUMY + ZAPIS PLIKU + KIERY SKOŃCZY - CALLBACK: + INFORMACJA O POWODZENIU LUB BŁĘDZIE + + Nie zapomnij o require() dla odpowiedniego modułu. + */ + + +const fs = require('fs'); +var array; +var sum = 0; +fs.readFile('./data/zadanie01/input.json', 'utf8', function(err, content) { + if (err === null) { + array = JSON.parse(content); + array.forEach(function (value) { + sum += Number(value); + // console.log(value); + }); + + fs.writeFile('./data/zadanie01/sum.txt', sum, function(err) { + if(err === null){ + console.log('File has been saved'); + } else{ + console.log('Error while saving file'); + } + }); + + }else { + console.log('Error reading file content!', err); + } +}); + diff --git a/app/zadanie02.js b/app/zadanie02.js index 8c20173..2d2be6d 100644 --- a/app/zadanie02.js +++ b/app/zadanie02.js @@ -1 +1,38 @@ -//Twój kod \ No newline at end of file +/** + 2. Zawartość wszystkich plików w katalogu + Napisz program, który wyświetli zawartość wszystkich plików w folderze app/data/zadanie02/. + + Skorzystaj z możliwości listowania plików w folderze. Po otrzymaniu listy plików wyświetlaj je w pętli. + + Pamiętaj, że funkcje listowania i odczytu są asynchronicze! Twój kod powinien odpowiadać takiemu pseudokodowi: + + LISTOWANIE ZAWARTOŚCI KATALOGU + KIEDY SKOŃCZY - CALLBACK: + PĘTLA DLA KAŻDEJ NAZWY PLIKU + ODCZYT PLIKU + KIERY SKOŃCZY - CALLBACK: + WYŚWIETLENIE ZAWARTOŚCI PLIKU LUB INFORMACJI BŁĘDZIE + + */ + +const fs = require('fs'); +var dirName = './data/zadanie02/'; + +fs.readdir(dirName, function(err, files){ + if (err === null){ + console.log('List of files:'); + files.forEach(function(file) { + // console.log(file); + fs.readFile(dirName+file, 'utf8', function (err, content) { + if(err === null){ + console.log('File content: ', content); + }else{ + console.log('Error - cannot display the content of a file', err); + } + }) + }); + + } else { + console.log('Error while listing files', err); + } +}); \ No newline at end of file diff --git a/app/zadanieDnia.js b/app/zadanieDnia.js index 8c20173..d4a2ec0 100644 --- a/app/zadanieDnia.js +++ b/app/zadanieDnia.js @@ -1 +1,57 @@ -//Twój kod \ No newline at end of file +/** + Zadanie dnia: Program TrAwKa + Dzisiejsze zadanie dnia pozwoli Ci stworzyć program "TrAwKa". Ma on modyfikować plik tekstowy w taki sposób, + aby każdy nieparzysty znak był pisany wielką literą, a parzysty małą literą. + + Efekt będzie nieco przypominał nieprzystrzyżony trawnik ;) Np. plik z zawartością Hello, World! zamieni na + HeLlO, wOrLd!. + + Wykorzystaj wiedzę z dnia pierwszego i spraw, aby nazwa pliku do modyfikacji mogła być podawana jako argument + Twojego programu Node. + + Pamiętaj, że funkcje odczytu i zapisu są asynchronicze! Twój kod powinien odpowiadać takiemu pseudokodowi: + + ODCZYT PLIKU + KIEDY SKOŃCZY - CALLBACK: + ZMIANA TEKSTU WEDŁUG WZORU + ZAPIS TAKIEGO SAMEGO PLIKU + KIERY SKOŃCZY - CALLBACK: + INFORMACJA O POWODZENIU LUB BŁĘDZIE + Zawsze wykonuj kopię zapasową pliku na którym operujesz! + + Do testu możesz posłużyć się plikiem w app/data/zadanieDnia/test.txt np. w ten sposób: + + node zadanieDnia.js ./data/zadanieDnia/test.txt + To wszystko na dziś - gratulacje! Do jutra :) + + */ + +const fs = require('fs'); +//var dirName = './data/zadanie02/'; + +fs.readFile('./data/zadanieDnia/test.txt', 'utf8', function(err, content){ + if (err === null){ + console.log('Modifying every other letter to UpperCase:'); + // console.log(content); + + var modText = ""; + + for(var i=0; i