[00:13:31] <geniepro> http://putnik1.livejournal.com/3756404.html
"Напоследок из немецких новостей. Тенденция подтверждается. Россия исчезла из сводок СМИ. Украина тоже, причем прочно. Так бывает только если есть указание. Сегодня коротко сказали по радио про утерянный украинцами аэропорт, но без всяких оценок (дескать, утерян полностью), и на этом все. Изменение риторики произошло сразу после визита Яценюка и его высказываний о ВОВ. У меня такое впечатление, что если ополченцы сегодня освободят Одессу и Запорожье, то этого здесь никто не заметит. По-моему, и лично, и профессионально, это очень серьезное изменение в политике освещения событий на Украине.Вот такие наблюдения."

уж не путинский ли шпиён этот Яйценюх?
[00:39:40] <sda> http://colonelcassad.livejournal.com/1991761.html
про тот автобус, по данным ОБСЕ из Града стреляли с северного направления, а не с востока где были ополченцы...
[14:38:12] <valexey> https://upload.wikimedia.org/wikipedia/ru/6/61/IPPNORF.png
[17:23:40] <alexey.veselovsky> http://pbs.twimg.com/media/B7oRwBtIIAAItp4.jpg
[18:09:38] <Jordan> Киньте ссылку на сайт, на который можно выложить свой исходник и  сохранить на него ссылку.
[18:09:53] <Jordan> Не на постоянной основе
[18:10:19] <Jordan> Чтоб код в джаббер не копировать
[18:18:04] <Jordan> valexey помнишь ссылку давал, куда сорцы можно скопировать?
[18:20:54] <geniepro> Jordan: http://www.paste.org/porg/home
[18:25:34] <Jordan> Вот http://www.paste.org/76904
[18:26:07] <valexey> Jordan: https://gist.github.com/
[18:26:23] <Jordan> Как правильно обработать конец файла? Я разбираю стрку вида "{76}{Hello!}" читаю текст из скобок
[18:31:38] <Jordan> По идее is_end ложе сработать и дальше не читать, но происходит дальнейшее чтение, а так как это конец файла, он выдаёт ошибку, так как я там поставил прверку
[18:32:46] <Jordan> Я уже думал поставить костыль, в саму функцию считывания if input.eof return "";
[18:40:35] <valexey> не понял вопроса. нужно проверять на конец файла и все
[18:41:23] <Jordan> так проверка во вне есть, но не срабатывает
[18:41:39] <Jordan> Тупо цикл должен останавливаться
[18:42:00] <valexey> дык в цикле проверяй
[18:42:53] <Jordan> так я и проверяю while (пока не конец)
[18:43:05] <Jordan> while (!f.is_end())
[18:44:31] <Jordan> из файла строка должна читаться два раза, f.read а читает 3 раза, потому проверка и срабатывает
[18:46:16] <Jordan> Могу сорцы скинуть + текстовые данные. Я просто с уже в ступоре.
[18:59:27] <Kemet> Jordan: В read надо на eof проверять
[19:00:40] <Kemet> Или в char и устанавл вать внутр флаг
[19:02:55] <geniepro> http://tjournal.ru/paper/life-and-afterlife
[19:05:00] <Jordan> Сделал
[19:08:46] <Jordan> Kemet проверяем в read, а дальше? read значение возвращает. Чего возвращать?
[19:08:59] <Jordan> Примерно так    
   if (ch != '{')
   {
     error("Not found symbol {");
   }
[19:09:18] <Jordan> не то
[19:09:24] <Jordan> вот
[19:09:26] <Jordan>    
   if (input.eof() == true)
   {
     return ".";
   }
[19:26:14] <Jordan> Kemet Как в функции read проверять?
[19:30:07] <Jordan> проще возвращать тип, вроде токенов, тогда цикл будет while (token != TOKEN_IS END) && (TOKEN_IS_ERROR)
[19:30:34] <Jordan> Тогда их можно с легкостью во вне обработать
[19:40:29] <valexey> /me так и не понял в чем проблема
[19:42:43] <Jordan> valexey Давай я тебе файлы вышлю?
[19:42:57] <valexey> давай на gist :-)
[19:43:24] <valexey> а ты чем вообще пользуешься? стандартной либой C или С++,
[19:43:26] <valexey> ?
[19:43:27] <тихий бот> тварь я дрожащая, или тот, кому надо?
[19:44:45] <Jordan> Обижаешь цпп
[19:44:50] <Jordan> ;-)
[19:44:56] <Jordan> https://gist.github.com/anonymous/23ae29a79b0cb1ffe484
[19:47:09] <valexey> тела методов в самом объявлении класса? УЖС!
[19:47:40] <Jordan> Это что бы кода было меньше
[19:47:54] <valexey> но чтобы он и читался сложнее, да :-)
[19:47:56] <valexey> ладно, щща
[19:48:25] <valexey> насколько я понимаю у тебя не с библиотекой проблема, а с архитектурой твоего кода
[19:48:34] <Jordan> формат файла такой, содержимое test.txt
[19:48:36] <Jordan> {76}{Hello World!}
[19:49:17] <Jordan> на говнокод, я признаться горазд :-)
[19:49:40] <valexey> то есть тебе явно бы хотелось иметь не  char read_char() а что-то вроде  maybe<char> read_char()

[19:50:18] <valexey> то есть иметь возможность из read_char сказать всем чта-а все, алес - файло кончилось
[19:50:34] <Jordan> да
[19:50:35] <тихий бот> Jordan, нет
[19:50:58] <Jordan> но я не пойму почему while не работает, итерацию не завершает
[19:53:53] <valexey> The first signature returns the character read, or the end-of-file value (EOF) if no characters are available in the stream (note that in this case, the failbit flag is also set).
[19:54:02] <valexey> думаю ты не так проверяешь
[19:54:47] <valexey> пример чтения до конца:
[19:54:49] <valexey>  char c;
 while (is.get(c))          // loop getting single characters
   std::cout << c;

 is.close();                // close file
[19:58:16] <valexey> int ch;
while ((ch = inf.get()) != EOF) {
   std::cout << static_cast<char>(ch) << "\n";
}
[19:58:21] <valexey> вообще по моему кошерней так
[19:58:30] <valexey> грубо говоря
[20:01:11] <Jordan> Так я в цикле, читаю изфайла посимвольно, после вычленяю нужные строки из скобок. Как применить твой пример?
[20:03:31] <valexey> ну а логически, ты что хочешь сделать если read_char вернул eof?
[20:04:27] <Jordan> смотря где, если во время разбора, то сообщить об ошибке, мол непредвиденное завершение файла
[20:04:37] <valexey>  char read_char()
 {
   char ch;

   input.get(ch);
   if (ch==EOF) {is_end = true; return ch;}
   tabs++;
   
   if (ch == '\n')
   {
     tabs = 1;
     strs++;
   }
   
   return ch;
 }
[20:04:48] <valexey> bool is_end;
[20:04:52] <valexey> всё. :-)
[20:06:30] <valexey> Ну или как оно там?  if (ch==input.eof()) {is_end = true; return ch;}
[20:14:30] <Jordan> не то
[20:15:13] <Jordan> смотри
[20:17:51] <Jordan> просто запусти код, там не во флаге дело
[20:18:16] <Jordan> так как достигнут ли конец файла проверяется во внешнем цикле
[20:25:01] <Jordan> valexey Код работает, но уверен, что решение костыльное
[20:25:16] <Jordan> Я грубо вставил в функцию read
[20:25:36] <Jordan>
   if (input.eof() == true)
   {
     return "";
   }
[20:26:35] <geniepro> http://animechan.ru/uploads/posts/2015-01/1421070947_anime-original-anime-art-anime-opasnye-nyashki-1576163.gif
[20:27:55] <valexey> как-то это черезжопно
[20:28:12] <valexey> тебе же на каждом символе нужно проверять не конец ли файла
[20:28:21] <valexey> и это должен делать точно не read_char
[20:28:29] <valexey> ибо не его ума это дело
[20:29:05] <Kemet> Jordan: в процедуре чтения символа проверяй на конец файла и устанавливай ch в 0
как признак ( если поток сам не устанавдивае)  а в прлцедуре парсинга уже проверяй cj
[20:29:05] <valexey> он же не может решить что с этим сделать, с концом файла то есть.
[20:29:18] <Jordan> А хочется решить задачу, по Виртовски с одним return
[20:29:25] <valexey> Kemet: это не кошеррно :-)
[20:29:38] <valexey> алсо что мешает везде где нужно, напрямую проверять in.eof() ?
[20:29:49] <valexey> нафига дублировать это все по десятому разу?
[20:30:21] <Jordan> Да сразу проверять на input.eof()
[20:30:42] <valexey> ну вот и проверяй везде где нужно :-)
[20:30:47] <valexey> и точно не в read_char
[20:31:11] <valexey> вообще: единственное полезное дело что делает read_char - оно у тебя что-то там с табами творит. (tabs=1) и всё.
[20:31:35] <valexey> поэтому я бы выкинул read_char как сущность
[20:32:21] <Jordan> как выкинут? read_char подсчитывает кол-во табов и строк прочитанных и если есть ошибка парсинга, пишет на какой строке
[20:32:36] <Jordan> что в замен read_char?
[20:33:02] <valexey> и сделал бы как-то так: in.get(ch); if (!in.eof()) {.. тут уже разбираемся что это за символ был, если конец строки - то творим непотребство с табами и так далее}
[20:33:13] <Kemet> Каждый раз обращаться к потоку не кошерно ибо потоки разные и там мог статус измениться
[20:33:17] <valexey> вот как-то так
[20:33:21] <valexey> не нужен тебе read_char
[20:33:43] <valexey> считать строки и табы - должна узкоспециализированная штука, которая не вынимает из потока очередной символ
[20:36:00] <valexey> еще раз - после того, как ОДИН раз проверили что у нас не конец файла, и символ валиден (то есть вообще прочитался), начинаем разбираться что это за символ и всячески это все обрабатывать и парсить. разбирать синтаксис, выводить ошибки, считать строки и табы и так далее.
[20:36:45] <valexey> нефиг в коде бардак разводить в стиле Вирта :-)
[20:39:59] <Jordan> Мне понравилось писать с одним return'ом
[20:40:30] <valexey> ну, конечно всегда есть алтернатива, есть goto, есть исключения... так что и с одним return можно выжить ;-)
[20:40:59] <valexey> сигналы наконец!
[21:06:49] <_valexey_> В плане ble мелкософт конечно инопланетяне.
[21:23:14] <Kemet> _valexey_: можно в жабрологе сделать ссылки кликабельными?
[21:23:45] <geniepro> Kemet: это ко владу вопрос -- он сказал, что ему лень )
[21:24:05] <geniepro> а, стоп, не ко владу, а к rjrs или как-то там его
[21:25:53] <_valexey_> Можно. В теории :-)
[21:44:03] <Kemet> _valexey_: wchar что за зверь внутри
[21:45:55] <geniepro> Kemet: widechar жу
[21:45:58] <geniepro> же*
[21:46:43] <Kemet> geniepro: внутри оно что - особый тип или какой нить алипс
[21:46:53] <Kemet> алиас
[21:47:14] <Kemet> типа на инт16
[21:47:19] <geniepro> вроде как стандартизированный тип, если не ошибаюсь
[21:47:44] <geniepro> размер char или wchar стандартаом не определена
[21:59:06] <Kemet> geniepro: что то типа unsigned short
[22:02:09] <geniepro> зависит от реализации, думаю
[22:02:21] <geniepro> signed char же вполне допустим в сях
[23:32:48] <geniepro> http://imguploads.ru/img/2015/01/18/LxN9cF.jpg