Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/data/zadanie01/sum.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
108
10 changes: 5 additions & 5 deletions app/data/zadanieDnia/test.txt
Original file line number Diff line number Diff line change
@@ -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]
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]
48 changes: 47 additions & 1 deletion app/zadanie01.js
Original file line number Diff line number Diff line change
@@ -1 +1,47 @@
//Twój kod
/**
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);
}
});

39 changes: 38 additions & 1 deletion app/zadanie02.js
Original file line number Diff line number Diff line change
@@ -1 +1,38 @@
//Twój kod
/**
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);
}
});
58 changes: 57 additions & 1 deletion app/zadanieDnia.js
Original file line number Diff line number Diff line change
@@ -1 +1,57 @@
//Twój kod
/**
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<content.length ;i++){
modText += i % 2 === 0 ? content.charAt(i).toUpperCase() : content.charAt(i);
}

console.log(modText);

fs.writeFile('./data/zadanieDnia/test.txt', modText, function (err) {
if(err === null){
console.log('File saved');
}
else{
console.log('Error while saving file', err);
}
})

} else {
console.log('Error while reading file', err);
}
});