Професионална програма
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