Професионална програма
Loading...
kaloyannikov avatar kaloyannikov 531 Точки

BashSoft Lab {Files and Directories]

Така първо се казва това : http://postimg.org/image/4oxuwe6wb/  

после на края : 

 Now we should be ready for testing. You are given three files with the current story piece called test1.txt, test2.txt, test3.txt. First compare the content of test1.txt, test2.txt, see what log is written in the mismatches file (mismatch file should not be existing, because there are no mismatches) and then compare test2.txt and test3.txt and again see the mismatches file to see what has changed.

Или аз нещо не разбирам , но output-a се записва дори като има mismatch ( line match - > %s\n) , а се после се казва ,че mismatch file не трябва да съществува понеже в тест1 и тест2 няма mismatch. 

Тагове:
0
Java Advanced
IskrenPenev avatar IskrenPenev 177 Точки

output ти се явява нещо като работна променлива. С нейна помощ добавяш елементи в масива, който метода ти връща. Тази променлива има различна стойност при всяко завъртане на цикъла. 

От друга страна целия метод връща масив, като в същото време променя (или поне може да променя) булевата променлива hasMismatch.

В зависимост от тази променлива със следващият метод PrintOutput, ако е има несъответствия се създава въпросният файл mismatch.txt, ако всичко е едно към едно, файлът не се създава и ти отпечатва съобщение че данните са еднакви.

При сравнението на тест1 и тест2, няма несъответствия, при сравнението на тест2 и тест 3 има.

Надявам се да съм го обяснил горе-долу разбираемо ;)

Поздрави!

0
kaloyannikov avatar kaloyannikov 531 Точки

Нали под if/else се записва във файла. Тогава какъв е смисъла от тоя line match => ако няма да се записва направо в else 1 continue .

0
IskrenPenev avatar IskrenPenev 177 Точки

Това е по-скоро уловка - и аз се подведох в началото. След if/else-a добавяш текушия стринг (output) в масива (методът ти връща масив, неговата роля не е да пише по файлове).

След това когато трябва да изведеш резултата от сравнението (това става с следващият метод PrintOutput), се проверява дали има някакви несъответствия (булевата променлива hasMismatch). Ако има несъответствия, то те са записани по правилния начин в масива mismatches, ако няма несъотвествия mismatches изглежда по абсолютно същия начин както actualOutput/expectedOutput.

Метода PrintOutput ще ти отпечата съдържанието на mismatches само и единствено ако имаш несъответствия. В самият файл също се записва съдържанието на масива mismatches, но САМО ако има някакви несъотвествия(с други думи ако изхода съвпада с очаквания изход, отпечатваш съобщението че всичко съвпада и НЕ създаваш файл).

0
30/05/2016 23:17:43
kaloyannikov avatar kaloyannikov 531 Точки

Еми тогава след else да сложа ако е имало mismatch само тогава да записва текущия стринг? Ако те разбрах правилно , де.

0
IskrenPenev avatar IskrenPenev 177 Точки

От "line match" и аз не виждам особен смисъл. Аз лично правя лаба на C# и ако двата реда са еднакви се иска само да задам текущия ред като стойност на output (същото но без line match) и после да си добавя output в масива.

Така изглежда моят цикъл (работи както се очаква): http://postimg.org/image/vcje5j3l7/

 

0
kaloyannikov avatar kaloyannikov 531 Точки

при вас се връща масив , но в Java лаб-a се иска да се върне boolean променлива. 

0
IskrenPenev avatar IskrenPenev 177 Точки

Извинявай, грешката е моя - предположих че методите ще са идентични. Разликата е в това, че вие трябва да запишете данните в файл, а не в масив. След това ако има несъответствия, четете от файла и печатате. Отговора на въпроса ти, защо в else-a не сложим continue e :

"If, however we don’t get a mismatch, if the lines are identical then we simply write down the line in output. In both cases we then save the output to the mismatches.txt. Why? Well because if we get an eventual mismatch down the line or if we’ve gotten one already, it’ll be easier to see where it occurred if we also have the rest of the text written down."

 

0
kaloyannikov avatar kaloyannikov 531 Точки

ами да т.е трябва да се записва в файла но само ако вече mismatch e станал на true . Само по тоя начин може да се изпълния и условието в края , че да не се създаде такъв файл. 

0
IskrenPenev avatar IskrenPenev 177 Точки

Това последното условие не му обръщай такова внимание, мисля че просто е копирано от условието на нашия лаб (там файл се създава само ако има несъотвествия). Като цяло се срещата доста грешки/неточносто в самите условия.

0
kaloyannikov avatar kaloyannikov 531 Точки

ами ако не му обръщам внимание , би трябвало да ми е коректно.

0