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.
Нали под if/else се записва във файла. Тогава какъв е смисъла от тоя line match => ако няма да се записва направо в else 1 continue .
Това е по-скоро уловка - и аз се подведох в началото. След if/else-a добавяш текушия стринг (output) в масива (методът ти връща масив, неговата роля не е да пише по файлове).
След това когато трябва да изведеш резултата от сравнението (това става с следващият метод PrintOutput), се проверява дали има някакви несъответствия (булевата променлива hasMismatch). Ако има несъответствия, то те са записани по правилния начин в масива mismatches, ако няма несъотвествия mismatches изглежда по абсолютно същия начин както actualOutput/expectedOutput.
Метода PrintOutput ще ти отпечата съдържанието на mismatches само и единствено ако имаш несъответствия. В самият файл също се записва съдържанието на масива mismatches, но САМО ако има някакви несъотвествия(с други думи ако изхода съвпада с очаквания изход, отпечатваш съобщението че всичко съвпада и НЕ създаваш файл).
Еми тогава след else да сложа ако е имало mismatch само тогава да записва текущия стринг? Ако те разбрах правилно , де.
От "line match" и аз не виждам особен смисъл. Аз лично правя лаба на C# и ако двата реда са еднакви се иска само да задам текущия ред като стойност на output (същото но без line match) и после да си добавя output в масива.
Така изглежда моят цикъл (работи както се очаква): http://postimg.org/image/vcje5j3l7/
при вас се връща масив , но в Java лаб-a се иска да се върне boolean променлива.
Извинявай, грешката е моя - предположих че методите ще са идентични. Разликата е в това, че вие трябва да запишете данните в файл, а не в масив. След това ако има несъответствия, четете от файла и печатате. Отговора на въпроса ти, защо в 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."
ами да т.е трябва да се записва в файла но само ако вече mismatch e станал на true . Само по тоя начин може да се изпълния и условието в края , че да не се създаде такъв файл.
Това последното условие не му обръщай такова внимание, мисля че просто е копирано от условието на нашия лаб (там файл се създава само ако има несъотвествия). Като цяло се срещата доста грешки/неточносто в самите условия.
ами ако не му обръщам внимание , би трябвало да ми е коректно.