Прайсы 2

  • 10
  • Недоступна
CrUD для таблицы внутри файла Считать с консоли имя файла для операций CrUD Программа запускается с одним из следующих наборов параметров: -u id productName price quantity -d id Значения параметров: где id - 8 символов productName - название товара, 30 chars (60 bytes) price - цена, 8 символов quant
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (176)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Wladyslaw20 уровень
11 августа, 16:11
Для прошлой задачи написал свои классы - обертки для JDK-шного FileReader и FileWriter, там в середине реализовал логику. Создал класс Product. При вычитке - строка парсится в объекты. При записи - объект преобразуется в форматированную согласно заданию строку и пишется в файл. Все классно, все работает - валидатор не принимает ругаясь тупо на все. Два дня возился - плюнул, перенес все в статический контекст в main не меняя логики и убрал объекты из цепочки - приняло. Для этой даже не стал возится. Тупо в лоб все написал в maine и забил. Такие вещи очень демотивируют - язык то ООПшный, а код в стиле ООП валидатор принимать отказывается
Nordis24 уровень, Санкт-Петербург
7 августа, 21:14
Часов 8 или 10 спустя. Всё проверил досконально. Но результат мне понравился. тут
Руслан20 уровень, Усть-Орда
7 августа, 20:07
млин, две последний задачи с первой попытки. Сегодня я в ударе), радуюсь, что число решивших постепенно уменьшается)) Хочется все задачи перерешать и быстро
Ololo Sha22 уровень
18 июля, 12:13
Устал от этого уровня, аж дебагером научился пользоваться)
17 июля, 19:58
хз как вы, но я кайфанул с задачи) Это пока самый минимум, который я видел тут: Всего эту задачу решили 7838 учеников.
KirStranger27 уровень
13 августа, 15:43
Подожди еще несколько уровней) в двое снизится)))
Павел22 уровень, Санкт-Петербург
2 июля, 17:40
а что знaчит -> обновляет данные товара с заданным id ?
Максим20 уровень
8 июля, 14:13
Вот и я не могу догнать это условие. Сделал обновление строки по id, а Валидатор мне говорит, то не выполнено условие задачи
Павел22 уровень, Санкт-Петербург
8 июля, 17:11
как сделал я, обновить айди, значит записать данные args в хранилище, считать все из файла в другое хранилище заменив там нужную строку на строку из args и тупо записать все по новой в файл
Тимур20 уровень, Красноярск
21 июня, 11:09
Ееееее! Прошёл! 7 попыток. записываем весь файл построчно в массив а потом поновой в файл, обходя или перезаполняя нужные строки...
Александр27 уровень, Санкт-Петербург
3 июня, 22:16
Две чудесные задачи, которые довели меня до Rage [CTRL]+[c],[CTRL]+[v] А потом, контрольным в голову было то, что отличие "верного" и "неверного" варианта в том, что FileInputStream/FileOutputStream - плохо, а FileReader/FileWriter - хорошо
Ivan26 уровень, Нижний Новгород
13 июля, 15:16
делал FileOutputStream'ом всё нормально приняло.
22 мая, 08:13
Читаю комментарии и ужасаюсь... Доп.классы, парсинг в Дабл, СтрингБафферы... Зачем это всё? Из того чему нас уже научили я сделал так: Прочитал с консоли имя файла. Если аргументов > 0 и нулевой аргумент -у или -д то открываем поток для чтения. Пока есть непустые строки читаем строку, парсим первые 8 символов и отбрасываем пробелы, если она совпадает с первым аргументом, смотрим какой был нулевой аргумент, если -у, заменяем строку на нужную, если -д делаем континуе. Добавляем строку в аррэйлист. Конец цикла, закрываем поток чтения. Открываем поток на запись, если строка первая просто добавляем строку из аррэйлиста, если не первая, то сперва добавляем ньюлайн, делаем это пока есть элементы. Закрываем поток записи. Всё, 35 строк кода...
Роман22 уровень
25 июня, 11:51
Евгений, спасибо, подсмотрел у вас алгоритм :) 2 попытки вышло.
Павел22 уровень, Санкт-Петербург
3 июля, 18:15
35? у меня около 120 ушло и то еще не до конца, и не правильно....
Alexey Matias19 уровень, Санкт-Петербург
8 июля, 21:29
Отличный алгоритм!
Hexronimo23 уровень
21 мая, 20:04
Интересно, если записать BufferedWriter в ресурсах, вот так:
try (
BufferedReader br = new BufferedReader(new FileReader(filename));
BufferedWriter bw = new BufferedWriter(new FileWriter(filename))) {
...
} catch(IOException e) {}
даже если нигде в коде нет метода .write() и вообще bw не используется, он все равно сразу стирает содержимое файла.
Сергей29 уровень, Минск
31 мая, 22:53
Похоже что да