Стандартные символы – разделители полей(столбцов) в EXCEL это Табуляция, Пробел, точка с запятой, запятая, пробел. Проблема: Подскажите, Как включить в список разделителей полей для EXCEL символ EOT(Конец Передачи) ? Напрямую, «в лоб» проблема не решается. Если в Мастере Текстов указать Alt04 что соответствует символу EOT то никакой реакции. Символ EOT (Конец Передачи) \004 или 4 или EOT или \x04 или ^D или Alt04 (End of transmission) http://donsnotes.com/tech/charsets/ascii.html Все Дело в том, что в старом текстовом файле-каталоге Электронной Библиотеки в качестве разделителей полей были использованы символы EOT Стоит задача редактировать этот файл-каталоге в EXCEL Образец файла-каталога во Вложении Спасибо!
Скопируйте этот символ из любой строки (хоть его и не видно, но он там есть) и вставьте в поле Другой (визуально его то-же не увидите). И все получиться. Да, и отметьте галочкой - считать несколько одинаковых разделителей как один Например в строке "Аббасзаде,Гусейн,:" после двоеточия не пробел (как может показаться), а именно этот спецсимвол У меня получилось
Могу предложить обходной вариант: откройте текстовый файл сначала в блокноте и вручную, с помощью Найти и заменить замените этот символ на знак табуляции. А затем уже открывайте измененный файл в Excel'е. Чтобы вставить в поле "Заменить" знак табуляции, сначала напечатайте его в блокноте (можете в другом файле), а затем скопируйте и затем вставьте в поле "Заменить". Недостаток такого варианта - вдруг в текстовом файле уже есть знаки табуляции.
Karataev написал: Найти и заменить замените этот символ на знак табуляции. Недостаток такого варианта - вдруг в текстовом файле уже есть знаки табуляции.
Вариант - заменить в Блокноте Ваш спецсимвол на, например ~ (тильду). А дальше по общей схеме с разделителем ~ (тильда)
Уважаемый 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 Спасибо.
Супер. Будем пробовать. А какую Windows (у меня Windows7x64 SP1) и какую версию EXCEL (у меня Microsoft Office Excel 2007) использовать, это без разницы? Sanja написал: Вариант - заменить в Блокноте Ваш спецсимвол на, например ~ (тильду). А дальше по общей схеме с разделителем ~ (тильда) Увы, там до 500000 и выше записей Книг, умереть не встать... Если уж и менять, ... то на что-то экзотическое, чтоб не было потерь книг в Каталоге.
Открыл Ваш файл New2 в обычном Блокноте. Скопировал этот чудо символ - Правка - Заменить...-Что (Ваш символ) - Чем: ~ - Заменить все Думаю версии Windows и Office роли не играют
Согласие есть продукт при полном непротивлении сторон
т.е. Вы в текстовом файле заменили знак EOT на знак тильду, а Затем этот измененный текстовый файл передали в EXCEL? Мдаа... там вообще-то много книг(500000 и больше), и знак Тильда наверняка есть на каких-то строках, а каждая строка - это книга... т.е. те книги будут потеряны, что не айс... Увы. Нужен именно ПРЯМОЙ выбор EOT как Разделитель столбцов. Замена EOT на какой-то другой символ крайне не желательна
Судя по Вашему скептицизму, заставить EXCEL использовать символ EOT( т.е \x04) в качестве разделителя столбцов НЕвозможно? (прошу прощения, я не программист)
почему потеряны? Просто они не будут разбиты по ячейкам должным образом. Ну уж из полумиллиона записей десяток-другой руками разбить... Да и не уверен я что
Цитата
jakky написал: знак Тильда наверняка есть на каких-то строках
Согласие есть продукт при полном непротивлении сторон
Вот ведь блин… Интересно, за каким <...> Уважаемый Автор-создатель Программы-Бибиотекаря MyHomeLib http://home-lib.net/ устроил нам всем такую засаду? А может, символ-разделитель EOT используется в каких-то других Электронных таблицах(не EXCEL)? Тогда и файл с EOT-разделителем надо открывать не с EXCEL? Но я вроде все известные Табличные Процессоры перебрал …
Сорри... Программа-библиотекарь MyHomeLib бесплатная, свободно распространяемая и с открытым кодом. Типа дерзайте пацаны, учите Программирование... мда.
Интересно... Вы смогли использовали EOT как разделитель или тоже его чем-то заменили? Вот полный файл-каталог от Библиотеки Траума( там только порядка 200000 книг) В сжатом виде он 13Mb, после распаковки архиватором 7Z будет 50Mb (расширение .inp, но это простой txt-файл) https://yadi.sk/d/RBp22PGhrYyLX
jakky написал: Вы смогли использовали EOT как разделитель или тоже его чем-то заменили?
Нет, просто вставил все 33 скопированные из .txt строки на лист. Сбойная строка № 13 (короче на один столбец). Но может так и есть - я не вникал. Это я делал в 2010. Попробовал в 2003 - фокус не прошёл )
Супер! Так что, EXCEL-2010 понимает символ EOT как разделитель столбцов?? Там что, и вкладка с выбором EOT есть в Мастере Текстов?? Достать-то EXCEL-2010 не проблема, а как запустить эту перекодировку... Вы скопировали символ EOT в блокноте из исходного текста каталога, а потом вставили в поле "другой разделитель" в Мастере Текстов EXCEL-2010 ?
Вариант #2 т.е. открываешь файл Блокнотом, копируешь оттуда символ EOT (он там виден, как перевернутая буква "г"), потом открываешь этот файл в EXCEL-е и в Мастере выбираешь "другой" и в окошко копируешь из буфера(при этом в окошке ничего не появляется)? Ничего не получилось. Я вот что-то не пойму, как у Вас получилось при прямом копировании текста ... EXCEL-2010 по умолчанию воспринимает символ EOT как разделитель?? Фантастика.
Мда... С каталогом хотелось бы разобраться. Без EXCEL-я внести туда свои книге дохлый номер. К тому же запись "1" в девятое поле строки файла-каталога делает книгу "невидимой" для читателя... Такая, блин цензура от Держателя Каталога. А без Каталога все собрание книг - просто Гора непойми-чего.
Уточнение: сейчас попробовал проделать этот фокус с новой книгой - не получилось. Вспомнил, что я пытался перед этим программно выполнить "Текст по столбцам" вот таким кодом (на лист была скопирована одна первая строка):
Код
Sub Макрос1()
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=Chr(4), FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
End Sub
После этого удалил первую строку и теперь копирование/вставка В ЭТОЙ КНИГЕ всего блока происходит корректно. Макрос выполнять больше не нужно - можно про него забыть.