Имеет ли какой-либо вид плоского файла с обратным пространством? Мое требование состоит в анализе такого файла, но я не могу поместить символ обратного пробела в файл, чтобы проверить, могу ли я его обнаружить.Обратные пространства с плоскими файлами
ответ
Разделение не должно быть труднее, чем с использованием любого другого разделителя. В конце концов, это просто еще один персонаж. В Python, например:
>>> x = "apples\bbanana\bcoconut\bthese are delicious!"
>>> x.split('\b')
['apples', 'banana', 'coconut', 'these are delicious!']
Большинство языков используют \b
как экранирующий символ для забоя. Если у вас нет, вы также можете включить код управления ASCII для самого backspace, который является \ x08.
Как обратный символ? Я бы поверил, что backspace фактически удаляет символ, предшествующий ему. Является следующей строкой пример строки с ограниченным пространством: Яблоки/bbananas/bcoconut – Thunderhashy
Backspace - это то, что называется управляющим символом. Вы правы в том, что это не печатный персонаж; это просто волшебное значение, которое ваш файл использует для разграничения значений. Подробнее о контрольных символах здесь: http://en.wikipedia.org/wiki/Control_character –
Я прошел через ссылку. Кажется, что «\ b» является управляющим символом и не печатается. Но в вашем примере «apples \ bbananas \ bcoconut» я могу видеть «\ b», и я могу его распечатать. – Thunderhashy
Я никогда не видел его, но некоторые редакторы позволяют помещать символ обратного пробела, нажав, например. Сначала Ctrl-V.
Вы можете написать скрипт, который добавляет код символа ASCII для backspace (\0x008
) в файл.
Можете ли вы мне помочь с таким скриптом? – Thunderhashy
На каком языке вы хотите его написать? – SLaks
У меня нет языка скриптинга. Могу ли я сделать это через java? – Thunderhashy
Вот программа на C, которая сгенерирует вам файл с разделителем обратного пробела для тестирования (с новыми строками, разделяющими разные строки). Передайте либо имя файла, либо он будет записывать его на стандартный вывод (я выбрал C, потому что вы не упомянули платформу, у большинства людей есть компилятор C доступно):
#include <stdio.h>
int main(int argc, char **argv) {
FILE *outfile;
if (argc < 2)
outfile = stdout;
else
outfile = fopen(argv[1], "w");
fprintf(outfile, "this\bis\nbackspace\bdelimited\n");
fclose(outfile);
return 0;
}
same string literal syntax должен работать в Java; Я дам вам написать остальную часть программы:
"this\bis\nbackspace\bdelimited\n"
Спасибо. Возможно ли это на Java? Я использую java – Thunderhashy
Да, это возможно на Java. Но я действительно не хочу писать на Java прямо сейчас, и вы должны иметь возможность перевести программу. Такой же строковый литерал должен работать в Java: '' this \ bis \ nbackspace \ bdelimited \ n "' –
Мне удалось написать файл через java. Я использовал следующий фрагмент: FileOutputStream out out = new FileOutputStream ("C: \\ myfile.txt"); PrintStream p = новый PrintStream (out); p.println ("This \ bis \ bwritten \ bto \ ba \ bfile"); Теперь, когда я открываю файл в блокноте я могу видеть: Thisiswrittentoafile (Существует символ коробки между словами, которые здесь я не могу печатать) Но если я типа myfile.txt из CMD оболочки можно увидеть: Thiiwrittetfile Как мы видим, последняя буква каждого слова была удалена. Неужели это удивительно? некоторые данные теряются? – Thunderhashy
При использовании Windows, вы можете вставить забой в блокнот с помощью Ctrl + Backspace.
Спасибо, что это действительно полезно. – Thunderhashy
Я пробовал это. Но это выглядит иначе, чем запись в файл в java и использование «\ b» для backspace. Разница в том, что когда я открываю такой файл, используя команду командной строки командной строки cmd, появляется как Thiiwrittetfile⌂jahs , где символ до j фактически вводится с помощью Ctrl + Backspace, а буква s в «this» удаляется, поскольку после s , Я поместил a \ b через java-код. – Thunderhashy
Ctrl + Backspace фактически не создает обратный символ. Я не смог разобрать такой символ, используя \ b – Thunderhashy
Я также рекомендовал бы получить шестнадцатеричный редактор, такой как 0xED (для Mac). Это очень полезно для просмотра и редактирования файлов, содержащих необычные символы. С его помощью вы можете просто ввести «08», чтобы вставить символ обратного пространства в файл.
- 1. Есть ли реализация JDO с плоскими файлами?
- 2. Реляционная база данных с плоскими файлами
- 3. SSIS Foreach Loop с конкретными плоскими файлами
- 4. Посещение первичной синхронизации SVN с плоскими файлами
- 5. свойство быстрого анализа файла с плоскими файлами
- 6. Создание базы данных с плоскими файлами
- 7. Календарь событий с плоскими файлами в PHP
- 8. Text Qualifier в связи с плоскими файлами
- 9. Обратные пространства имен
- 10. SSIS: Как изменить метаданные на диспетчере соединений с плоскими файлами
- 11. Python API JSON для связанных данных с плоскими файлами
- 12. Пользовательские атрибуты для проверки подлинности с плоскими файлами в CAS
- 13. Список столбцов в соединении с плоскими файлами SSIS
- 14. SSIS Редактор диспетчера соединений с плоскими файлами Колонка
- 15. Получить список полей по соединению с плоскими файлами?
- 16. Импорт SQL Server из столбцов сопоставления с плоскими файлами
- 17. Извлечь специфический атрибут из писателя с плоскими файлами
- 18. Отображение данных с плоскими файлами в узлах-близнецах
- 19. Как оценивать обратные пространства в python?
- 20. Работа с плоскими зависимостями конфликтов
- 21. Чтение и новая база данных с плоскими файлами с разделителями (многомерная)
- 22. Параметры для двоичного хранения с плоскими файлами только для чтения с использованием Python
- 23. Задача потока данных не завершена, и файл с плоскими файлами находится в заблокированном состоянии
- 24. Реализация Find-Or-Create во время ввода данных с плоскими файлами данных
- 25. Экспорт данных с плоскими файлами - фиксированная длина столбца, если числовое поле равно нулю
- 26. Весенняя партия: сбрасывать набор запросов по базе данных параллельно с плоскими файлами
- 27. Внешнее соединение нескольких таблиц с плоскими результатами
- 28. Написание вектора структуры с плоскими буферами
- 29. Фильтр JSON-объект с плоскими массивами
- 30. Leaflet.markercluster проблема с простым плоскими плоской картой
На каком языке вы работаете? – Gregory
Я работаю с sqlserver и java. Мое требование состоит в том, чтобы анализировать файлы с ограниченным пространством. Сначала я попытался разобрать его с помощью утилиты bcp, но не смог этого сделать. Итак, теперь я пытаюсь разобрать его через java – Thunderhashy