![]() |
![]() |
![]() |
|
Запись текстового файла - служебные символы в начале файла. Как убрать? | ☑ | ||
---|---|---|---|---|
0
Stasinus
26.08.09
✎
11:41
|
Задача - записываю текстовый файл на ФТП в кодировке UTF8.
Проблема - 1С-ка дописывает в начале файла 3 служебных символа. Если открывать файл, скажем, блокнотом, их нет. Если же делать VIEW тем же Far'ом - они есть. Этот файл в дальнейшем открывается на линуксовой машине перлом, там они ессно тоже есть. Вопрос - как заставить 1с-ку НЕ ПИСАТЬ эти символы? |
|||
1
Rie
26.08.09
✎
11:42
|
(0) А надо ли их убирать?
|
|||
2
Дуб
26.08.09
✎
11:44
|
(0) инициируй запись через VBS
|
|||
3
Rie
26.08.09
✎
11:44
|
+(1) Это сигнатура, EF BB BF, используется для определения порядка байтов.
|
|||
4
Stasinus
26.08.09
✎
11:47
|
(1) Надо. Человек, отвечающий за линуксовую систему и перловый скрипт, открывающий эти файлы, ругается. Говорит "убирай нафик".
(3) Да, но он говорит мол они деприкейтэд. Мол нафик не нужны уже. (2) Не знаю, что это :-) |
|||
5
Rie
26.08.09
✎
11:49
|
(4) Deprecated, конечно. Не нужны - запиши файл, а потом вырежи их.
|
|||
6
shuhard
26.08.09
✎
11:49
|
(4) раз надо - код покажи, чем пишешь
|
|||
7
eklmn
гуру
26.08.09
✎
11:56
|
(4) ему надо, пусть и обрезает
|
|||
8
Stasinus
26.08.09
✎
12:06
|
(5) Я еще не пробовал, но уверен на 99,9%, что если этот файл опять таки открывать 1с-кой, то этих символов она не увидит.
(6) ФайлПередачи = Новый ТекстовыйДокумент(); ФайлПередачи.УстановитьТипФайла("UTF-8"); (хоть и по умолчанию UTF-8, на всяк. случай устанавливаю) ... ДокументПередачиКоманды.ДобавитьСтроку(СтрокаКоманды); ... ДокументПередачиКоманды.Записать(ПутьФайла,КодировкаТекста.UTF8); (тоже пробовал указывать кодировку тут, может поможет - не помогло) |
|||
9
Stasinus
26.08.09
✎
12:07
|
Точнее так:
ФайлПередачи = Новый ТекстовыйДокумент(); ФайлПередачи.УстановитьТипФайла("UTF-8"); (хоть и по умолчанию UTF-8, на всяк. случай устанавливаю) ... ФайлПередачи.ДобавитьСтроку(СтрокаКоманды); ... ФайлПередачи.Записать(ПутьФайла,КодировкаТекста.UTF8); (тоже пробовал указывать кодировку тут, может поможет - не помогло) |
|||
10
Rie
26.08.09
✎
12:09
|
(8) Конечно же, не увидит. А зачем их _видеть_? Записанный файл прочитать чем-либо (той же 1С-кой) и записать без первых 3 символов.
|
|||
11
Stasinus
26.08.09
✎
12:13
|
(10) То ли лыжи не едут... Либо я не понимаю, что ты имеешь ввиду.
Ты предлагаешь открыть файл, вырезать эти 3 символа и записать результат опять в файл. Если я буду открывать файл тем же ТекстовымДокументом, то как я вырежу эти символы, если они для 1с-ки не видны? Если буду записывать тем же ТекстовымДокументом, 1с-ка опять их вставит. Или ты предлагаешь каким-то другим механизмом файл читать/записывать? |
|||
12
Rie
26.08.09
✎
12:17
|
(11) Разумеется, другим.
|
|||
13
Kom-off
26.08.09
✎
12:26
|
Можно попробовать "ЗаписьТекста".
|
|||
14
Stasinus
26.08.09
✎
12:38
|
(13) ЗаписьТекста выдает тот же результат
|
|||
15
Kom-off
26.08.09
✎
12:40
|
Кодировка обязательно должна быть UTF-8 ?
|
|||
16
Stasinus
26.08.09
✎
12:45
|
(15) Да, обязательно. Там передаются в том числе кириллические символы.
|
|||
17
Kom-off
26.08.09
✎
12:52
|
А попробовать другие кодировки кириллическими символами, например: KOI8-r, если не ошибаюсь CP866, windows-1251?
|
|||
18
Rie
26.08.09
✎
13:17
|
(15) Твоему человеку на линуксовой машине убрать эти 3 байта - как два пальца об асфальт. Но ему лень. А тебе?
Не пытайся записывать этот текст в UTF-8 без этих 3 байтов. Запиши файл, потом скопируй его куда надо без этих первых 3 символов. Чем угодно. |
|||
19
Stasinus
26.08.09
✎
13:45
|
(to All)
Всем спасибо за ответы. Решили действительно не геммороиться, эти символы будут убираться перловым скриптом. |
|||
20
H A D G E H O G s
26.08.09
✎
13:54
|
Текст=Новый ТекстовыйДокумент;
Текст.УстановитьТипФайла(КодировкаТекста.UTF8); Текст.ДобавитьСтроку("Йа - дьятель!"); Текст.Записать("C:\Дятель.utf"); Текст=Неопределено; Данные=Новый ДвоичныеДанные("C:\Дятель.utf"); Строка64=Base64Строка(Данные); Строка64=Прав(Строка64,СтрДлина(Строка64)-4); ДанныеНаЗапись=Base64Значение(Строка64); ДанныеНаЗапись.Записать("C:\Дятель.txt"); |
|||
21
H A D G E H O G s
26.08.09
✎
13:56
|
"Если что - то хочется, но нельзя - то немного можно.
Но не со мной!" © Мой лучший универский друг, Миколо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |