Хранение ascii и двоичных данных в одном файле с разделителями табуляции - PullRequest
3 голосов
/ 17 апреля 2009

Я попал в ситуацию, когда было бы выгодно хранить как ascii, так и двоичные данные в файле с разделителями табуляции. Мои первые попытки были ужасны. Стоит ли вообще заниматься этим? Любой совет? Мне нужно будет иметь возможность легко разобрать полученный файл с разделителями табуляции. Вниз по течению эти данные поступают в MySQLdb. И было бы неплохо хранить двоичные данные в БД.

Ответы [ 4 ]

7 голосов
/ 17 апреля 2009

base64 кодирует ваши двоичные данные. Может быть, префикс с base64: или что-то, если это помогает. Тогда это просто файл ASCII, и вы можете легко его проанализировать.

0 голосов
/ 17 апреля 2009

Хотя я категорически против этого метода, вы можете хранить его непосредственно в файле, если вы знаете точную длину в байтах двоичных данных. Затем вы можете начать чтение с символа табуляции после значения длины. Надеемся, что после прочтения указанной длины в байтах у вас появится еще один символ табуляции или символ новой строки.

Пример:

ASCII 1 ASCII 2 BinaryLength Blob
this    is horrible 18  ®##]-û¢?#ý¯#d       ­ú2
please  don't   48  Þ­¾ï¥Zߨ}è¨Ùب©×ÚX©©x©†Ú…zŠWG©j ‡­˜zǘǰ˜y|‰}—

Вы должны действительно Base64 кодировать двоичные данные, однако.

0 голосов
/ 17 апреля 2009

Может быть, хранить двоичные данные в формате hex-blob ? По крайней мере, это поддерживается цепочкой инструментов MySQL.

0 голосов
/ 17 апреля 2009

Хотели ли вы использовать другой формат, в отличие от табуляции?

Поскольку двоичные данные могут содержать эквивалент символа табуляции, это не тривиальная задача.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...