Сергей Миронов, StarOffice тогда то же рассматривал, Kingsoft - нет.
В целом сейчас меня эта тема мало интересует, просто поделился собственным опытом.
Сейчас, возможно, что-то изменилось в этом отношении.
Кроме того у всех разные потребности в функционале офиса. Кому то достаточно, чтоб сотрудники красивые служебки могли писать. В моем случае на скрипы Excel (и частично Word) были завязаны некоторые бизнес-процессы, без их переноса в новую среду не было смысла вообще что-то менять.
Виктор, Сейчас я уже не в теме, но лет 5 назад мне пришлось прорабатывать подобный вопрос. Уткнулись в то что в конторе было много самописного софта под Excel и Word (скрипты) и они не работали ни под OpenOffice ни под LibreOffice. Пришлось бы убить кучу времени на переписывание сриптов.
Web_junior, Восстановить загрузчик.
Но есть не нулевая вероятность, что на диске нет никакой ОС, которая могла бы загрузиться, и возможно файловой системы то же нет.
Это можно проверить загрузившись с загрузочной флэшки. Сделать загрузочную флэшку с виндой можно например с помощью adminpe.ru/winpe10
Загрузитесь и просто в проводнике посмотрите найденные диски. Так же в комплекте есть диагностические утилиты, можно сделать проверку диска или попробовать восстановить файловую систему.
kristian_bells, В вашем коде нет второго параметра команды move.
Вообще для отладки, закоментируйте первую строку скрипта, тогда на экран будут выводиться все выполняемые команды и будет ясно в какой из них произошла ошибка. С ней и разбирайтесь.
const int size = 3;
double maxElemUnderD(double matric[size][size], int size)
Как вы думаете, какой size будет использоваться в объявлении matric и потом ниже в функции maxElemUnderD?
Что будет если первый size будет не равен второму size?
Что конкретно вы делали, чтоб довести флэшку до такого состояния?
Судя по скрину накрылась прошивка контроллера флэшки.
Скорее всего это можно вылечить перепрошив контроллер флэшки. Для этого вам нужно найти прошивку для вашей конкретной модели флэшки и программу для прошивки.
Не юзал матлаб на Линуксе.
Попробуйте стандартные варианты:
1.В поиске (это там где кнопка "пуск" у убунты) наберите matlab, возможно он достаточно сообразительный и прописался в оболочке убунты.
2.В папке куда вы его установили ищите что-нибудь типа bin/matlab, bin64/matlab
Странный выбор для "Junior Front-end developer".
Если просто для изучения то почему не Postgre или MySQL?
Вообще теория для любой РСУБД одна и та же, язык SQL примерно один и тот же, но процедурные расширения у каждой РСУБД свои, наборы встроенных функций свои, инструментарий свой и т.д. и т.п. Но в целом все более или менее похоже, т.к. выполняют одни и теже функции.
AlexSer, Не работал с последовательными портами из Qt, специфики не знаю.
Какой критерий завершения readAll()? Видимо конец данных (конец файла, закрытие канала связи, получение какого-то спец.символа означающего конец потока и т.п.). Специфика последовательного порта в том, что если устройство на том конце отвалится, то вы никогда об этом не узнаете, т.к. там нет как такового конца данных и закрытия потока, поэтому readAll() скорее всего не завершится никогда.
Используйте обычный read с буфером фиксированного размера.
далее записать данные в буфер, отправить полный пакет на обработку, произвести обнуление и снова прием.
Это наиболее простой в реализации и часто используемый вариант, но не самый оптимальный в плане производительности и потребления памяти.
Оптимальный вариант - это делать потоковый анализ полученных данных, т.е. вы получили какой-то блок данных и сразу отправляете его обработчику. Обработчик должен быть написан исходя из того, что:
1.один полный пакет может состоять из нескольких блоков данных, т.е. обработчик между вызовами должен сохранять состояние
2.в каждом конкретном блоке данных может не быть начала или конца пакета.
3.после получения признака конца пакета в блоке данных могут содержаться данные следующего пакета
Подобным образом, например реализуют HTTP парсеры. Можно посмотреть пример тут.
AlexSer, В вашей программе вам не нужно переводить в HEX. Про шестнадцатиричную систему я упомянул лишь потому, что там удобней смотреть поток байт глазами, для того что бы вы сами для себя выяснили какой набор символов в данной железке является разделителем строк. Как писал Владимир Коротенко в ответе, есть несколько вариантов общепринятых разделителей. Можно, конечно, ловить их все, но зачем.
То же самое можно сделать открыв документацию по протоколу, там наверняка описаны используемые разделители.
есть разделяющие символы "0D 0A 0D 0A 0D 0A"
В вашем примере 3 подряд идущих разделителя строки, а это визуально 2 пустые строки.
Для одной пустой строки, разделителей будет 2, т.е.: "0D 0A 0D 0A". Это при условии, что разделителем строк является CRLF, как в винде.