Как я могу скопировать код с Kindle PC и сохранить форматирование - PullRequest
10 голосов
/ 27 сентября 2011

Кто-нибудь нашел хороший способ скопировать код с Kindle PC?

Я только что загрузил книгу по программированию на Kindle PC в первый раз. Код в книге отформатирован очень хорошо, и я хотел бы скопировать код непосредственно из книги Kindle PC в Visual Studio без необходимости использования автоматического отступа. По какой-то причине, когда я копирую текст из книги, ни один из пробелов, табуляции или новых строк не сохраняется. Я буквально в конечном итоге с этим:

с использованием системы; using System.Collections.Generic; использование System.Linq; пространство имен NumericQuery {класс Program {static void Main (string [] args) {List list = new List () {1, 2, 3}; var query = из числа в списке, где число <3 выберите число; foreach (номер var в запросе) {Console.WriteLine (номер); }}}} </p>

Я разочарован, потому что я не могу загрузить код с сайта автора, так как у меня нет ISBN (потому что я не купил бумажную копию).

Ответы [ 3 ]

6 голосов
/ 24 мая 2013

Я только что решил эту проблему с копированием фрагментов кода из книги Kindle в редактор текста / исходного кода по вашему выбору.Эта же тема обсуждалась в публикации на stackoverflow.com, озаглавленной «Почему Chrome отображает этот HTML-код как полностью пустую страницу? Из Node.js, после« Книги для начинающих узлов »[закрыто]».Эта конкретная публикация описывает точно ту же проблему, с которой я столкнулся (та же книга Kindle, тот же фрагмент кода, тот же симптом кода!).К сожалению, эта публикация была преждевременно закрыта, прежде чем кто-либо из респондентов смог дать точный ответ, иначе я бы ответил на эту публикацию.

Однако я углубился в эту проблему и обнаружил основную причинупроблема при копировании фрагментов кода из книг Kindle: при копировании текста из приложения Kindle для пробельных символов используется шестнадцатеричный код 0xA0, а не 0x20.Шестнадцатеричный код 0xA0 является расширенным ASCII для неразрывных пробелов.Что ж, это не работает, когда вы ожидаете копировать и вставлять литеральные строки HTML, как это было в вышеупомянутой публикации.

И поэтому это объясняет поведение в вышеупомянутой публикации: оригинальный плакатуказал, что он может обойти проблему, перепечатав весь текст вручную.Это потому, что при ручной повторной печати использовались правильные значения 0x20.

У этого были другие симптомы, которые я сначала не понимал, но теперь объясняю: мой текстовый редактор (Notepad ++) неправильно определял зарезервированные ключевые слова в моемисходный код.Опять же, это потому, что ключевые слова были разделены 0xA0, а не 0x20.Парсер ключевых слов в Notepad ++ должен иметь токен 0x20.

Решение: после вставки текста из Kindle выполните поиск и замену, используя возможности поиска по регулярным выражениям в редакторе исходного кода.Найдите регулярное выражение \ xA0 и замените его на \ x20 (или, в зависимости от вашего редактора, просто введите один символ пробела в поле «Заменить» [так работает Notepad ++]).

0 голосов
/ 16 февраля 2017

Я обнаружил, что Kindle для ПК просто конвертирует все новые строки в \ x20, чтобы трюк с поиском и заменой не работал.Мое решение не очень хорошее, но оно работает:

Я скачал Caliber и начал им пользоваться.Достаточно сказать, что вы можете найти способы использовать Caliber, чтобы открыть все, что вам нужно, с помощью некоторого Google.

0 голосов
/ 09 июня 2016

Я бы проверил сайт издателя. Я обнаружил, что они часто публикуют исходный код, который сопровождает книги. Если они этого не делают, то это значительно снижает вероятность покупки книги. (В некоторых случаях никакое количество копий / вставок не может извлечь какой-либо код, независимо от плохого форматирования, и поэтому попытка получить код от издателя - единственный способ).

...