Количество полей в строке файла-каталога может быть разным, в зависимости от версии MyHomeLib и типа файла-каталога. Для проверки Вашей программы я использовал часть файла-каталога new1.inp из этого архива https://yadi.sk/d/OF8YMwdyrZid5 Пожалуйста, проверьте работу Вашей программы с этим образцом. Кстати, аналогичный образец - в шапке темы. Там строка содержит 14 полей. Каталог Библиотеки Трауба имел 16 полей. В дальнейшем количество полей будет увеличено, так пишет Автор MyHomeLib на своем сайте... С тем образцом, который Вы прислали действительно все в порядке, входной и выходной файлы имеют по 16 полей. Потеря последнего символа (EOT) в выходном файле возникает, если у входного файла в конце строки (EOT)(EOT)(CR)(LF), тогда у выходного файла мы имеем в конце строки (EOT)(CR)(LF) - т.е. один символ (EOT) в конце строки теряется. Входной файл: http://s017.radikal.ru/i421/1605/8f/b89793a39222.jpg Выходной файл после преобразования Вашей программой: http://s020.radikal.ru/i714/1605/15/4ab7b82b26cb.jpg
Угу.. Этот уже лучше. Открывается и после редактирования создает выходной файл Test.inp Однако опять те же грабли, что и у Уважаемого Fedorch, с которым последнее время общались на Форуме этой раздачи, (он как раз Автор преобразователя txt---inp) http://torrent.rus.ec/viewtopic.php?t=45&start=480 Количество EOT в выходном файле на единицу меньше, чем во входном файле. Например, у Вас вместо 14 получилось 13. Режется последний (EOT) а почему? Вообще-то вопрос не к EOT, а к символу "Табуляции", на который заменяется EOT при преобразовании inp-->txt Толи это фокусы кодировки "UFT-8 без BOM",... то ли в EXCEL-е "Табуляция" "не любит" соседства с (CR)(LF)... и у входного файла надо добавлять пробел между последним ("Табуляция") и (CR)(LF) в конце строки, а потом (после сохранения в EXCEL-е) удалять этот пробел у выходного файла ... х.з. Но эта потеря последнего символа "Табуляция" происходит именно после того, как файл пропускают через EXCEL
А что это за файл? При загрузке Вашего файла мой EXCEL вылетает(макросы разрешены). Другими (LibreOffice 5.1, OpenOffice 4.1.2) он тоже не открывается, ругаются на макросы. У меня EXCEL-2007, Windows7x64 SP1 Желательно, чтобы эта программа работала начиная с MS OFFICE 2003
Как раз наоборот. Я несчастный пользователь. Бедный, как церковная крыса. Отношение к MyHomeLib как к основателю Майкрософта: Билл Гейтс МастДай!!!, но заменить его нечем. А насколько потянет Сахарная Косточка "Программа Экспорта-Импорта файла-каталога MyHomeLib в EXCEL с графическим интерфейсом для Чайников"? Девочка у Вас уж больно внушительная… Кстати, в исходном файле каталога Библиотеки Траума 16 разделителей EOT-символов в строке, а в Вашем файле они заменены 13-ю символами Табуляции, что также не айс… На сайте koreec Автора MyHomeLib указано, «Разделитель chr($04), Количество полей может быть произвольным, указанным в structure.info» http://forum.home-lib.net/index.php?showtopic=16
Это я от жадности. Вообще-то после обработки в EXCEL файл-каталог надо вернуть обратно в с исходной структурой, т.е. с разделителями EOT, иначе программа-Библиотекарь MyHomeLib не воспримет этот файл-каталог Для обратной замены символа-разделителей Табуляции HT \x09 на символ-разделитель EOT \x04 есть программа-перекодировщик от Автора https://yadi.sk/d/T0ldyKecrZ6ji но для запуска этой программы надо еще скачать IDLE (Python 3.5 32-bit) https://www.python.org/downloads/
Не, ерунда какая-то... если посмотреть программой Notepad++ с сравнить исходный и конечный файлы(Ваш xlsx я преобразовал в txt), то видно что потеряны по 4 поля на строке(должны быть 14 , а у Вас 10), к тому же символ EOT в исходном тексте заменен на символ "горизонтальную табуляцию" \011 9 HT \x09 ^I \t (Horizontal tab)
Мда... С каталогом хотелось бы разобраться. Без EXCEL-я внести туда свои книге дохлый номер. К тому же запись "1" в девятое поле строки файла-каталога делает книгу "невидимой" для читателя... Такая, блин цензура от Держателя Каталога. А без Каталога все собрание книг - просто Гора непойми-чего.
Вариант #2 т.е. открываешь файл Блокнотом, копируешь оттуда символ EOT (он там виден, как перевернутая буква "г"), потом открываешь этот файл в EXCEL-е и в Мастере выбираешь "другой" и в окошко копируешь из буфера(при этом в окошке ничего не появляется)? Ничего не получилось. Я вот что-то не пойму, как у Вас получилось при прямом копировании текста ... EXCEL-2010 по умолчанию воспринимает символ EOT как разделитель?? Фантастика.
Супер! Так что, EXCEL-2010 понимает символ EOT как разделитель столбцов?? Там что, и вкладка с выбором EOT есть в Мастере Текстов?? Достать-то EXCEL-2010 не проблема, а как запустить эту перекодировку... Вы скопировали символ EOT в блокноте из исходного текста каталога, а потом вставили в поле "другой разделитель" в Мастере Текстов EXCEL-2010 ?
Интересно... Вы смогли использовали EOT как разделитель или тоже его чем-то заменили? Вот полный файл-каталог от Библиотеки Траума( там только порядка 200000 книг) В сжатом виде он 13Mb, после распаковки архиватором 7Z будет 50Mb (расширение .inp, но это простой txt-файл) https://yadi.sk/d/RBp22PGhrYyLX
Сорри... Программа-библиотекарь MyHomeLib бесплатная, свободно распространяемая и с открытым кодом. Типа дерзайте пацаны, учите Программирование... мда.
Вот ведь блин… Интересно, за каким <...> Уважаемый Автор-создатель Программы-Бибиотекаря MyHomeLib http://home-lib.net/ устроил нам всем такую засаду? А может, символ-разделитель EOT используется в каких-то других Электронных таблицах(не EXCEL)? Тогда и файл с EOT-разделителем надо открывать не с EXCEL? Но я вроде все известные Табличные Процессоры перебрал …
Судя по Вашему скептицизму, заставить EXCEL использовать символ EOT( т.е \x04) в качестве разделителя столбцов НЕвозможно? (прошу прощения, я не программист)
т.е. Вы в текстовом файле заменили знак EOT на знак тильду, а Затем этот измененный текстовый файл передали в EXCEL? Мдаа... там вообще-то много книг(500000 и больше), и знак Тильда наверняка есть на каких-то строках, а каждая строка - это книга... т.е. те книги будут потеряны, что не айс... Увы. Нужен именно ПРЯМОЙ выбор EOT как Разделитель столбцов. Замена EOT на какой-то другой символ крайне не желательна
Супер. Будем пробовать. А какую Windows (у меня Windows7x64 SP1) и какую версию EXCEL (у меня Microsoft Office Excel 2007) использовать, это без разницы? Sanja написал: Вариант - заменить в Блокноте Ваш спецсимвол на, например ~ (тильду). А дальше по общей схеме с разделителем ~ (тильда) Увы, там до 500000 и выше записей Книг, умереть не встать... Если уж и менять, ... то на что-то экзотическое, чтоб не было потерь книг в Каталоге.
Уважаемый Sanja вы меня озадачили. Я пробовал решить эту задаче на разных программах электронных Таблиц (Kingsoft Office, LibreOffice 5.1, OpenOffice 4.1.2, SoftMaker Office Professional) – без результата Моя система Windows 7x64 SP1 16Gb ; Microsoft Office Excel 2007 Пожалуйста(если это возможно) поясните подробнее, - какой Программой открыли файл и затем скопировали символ EOT - Ваша версия Windows - Ваша версия Microsoft Office Excel (или другая версия Электронной Таблицы) Подробно, по шагам Ваши действия по преобразованию файла в EXCEL Спасибо.
Стандартные символы – разделители полей(столбцов) в EXCEL это Табуляция, Пробел, точка с запятой, запятая, пробел. Проблема: Подскажите, Как включить в список разделителей полей для EXCEL символ EOT(Конец Передачи) ? Напрямую, «в лоб» проблема не решается. Если в Мастере Текстов указать Alt04 что соответствует символу EOT то никакой реакции. Символ EOT (Конец Передачи) \004 или 4 или EOT или \x04 или ^D или Alt04 (End of transmission) http://donsnotes.com/tech/charsets/ascii.html Все Дело в том, что в старом текстовом файле-каталоге Электронной Библиотеки в качестве разделителей полей были использованы символы EOT Стоит задача редактировать этот файл-каталоге в EXCEL Образец файла-каталога во Вложении Спасибо!