Имя: Пароль:
1C
1С v8
Копирование части файла
,
0 gvsgvs
 
02.04.12
10:41
Добрый день. может кто с сталкивался с такой проблемой есть XML файл я его разбираю и часть файла записываю в текстовый файл, файл получается 1783 байта, при создании текстового файла в ручную файл создается  размером 1780 байта хотя вроде оба файла идентичны, проверяю при помощи сравнения файла в 1С он мне тоже говорит что файлы единичны. В чем трабла не понимаю. я бы конечно на расхождения фалов забил но вытаскиваю из ХМЛ файла я не абы какой текст, а сертификат и когда его вытаскиваешь его в ручную винды соглашаются его зарегистрировать, а при программном выдергивании говорит что данный файл не может быть сертификатом.
1 gvsgvs
 
02.04.12
11:09
ап
2 pumbaEO
 
02.04.12
11:10
vbindiff  что говорит по файлам?
3 КМ155
 
02.04.12
11:10
(0) а что говорит fc/b ?
4 gvsgvs
 
02.04.12
11:23
а это что такое vbindiff   и где ее взять
5 pumbaEO
 
02.04.12
11:25
Дать ссылку "Давай я за тебя поищу в гугле" ?
6 gvsgvs
 
02.04.12
11:33
сравнил фаром первые три байта в отдно фале лишнии , откуда они взялись и как с ними что то я не догоняю
7 pumbaEO
 
02.04.12
11:38
UTF-8 BOM
8 gvsgvs
 
02.04.12
11:40
я с разной кодировкой пробывал , результат всегда один и тотже
9 pumbaEO
 
02.04.12
11:50
как программно записываешь?
10 gvsgvs
 
02.04.12
11:51
Текст = Новый ТекстовыйДокумент;
   Текст.Прочитать("c:\кол\1C.xml");
   Текст1 = Новый ТекстовыйДокумент;
   Текст1.Записать("c:\кол\951.cer");
   
   НачалоЗаписи = Неопределено;
   Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл
       Стр = Текст.ПолучитьСтроку(НомерСтроки);
       Если Стр = "<ФСС>" Тогда
           НачалоЗаписи = Истина;
       КонецЕсли;
       Если Стр = "</Сертификат>"  И НЕ НачалоЗаписи = Неопределено ИЛИ  Стр = "" Тогда
           Прервать;
       КонецЕсли;
       Если НЕ Стр = "<Сертификат>" И НЕ   Стр = "<ФСС>"  И НЕ НачалоЗаписи = Неопределено Тогда
             Стр1 = Стр;
           Текст1.ДобавитьСтроку(Стр1);
       КонецЕсли;    
   КонецЦикла;

   Текст1.УстановитьТипФайла(КодировкаТекста.UTF8);
   Текст1.Записать("c:\кол\951.cer");
11 pumbaEO
 
02.04.12
11:53
Я конечно с сертификатами не часто работал, но там разве не base64 ? Или это сертификат аля pgp ?
12 gvsgvs
 
02.04.12
11:57
да там base64
13 gvsgvs
 
02.04.12
11:58
но когда я руками  копирую я же не в base64 но все работает
14 pumbaEO
 
02.04.12
12:01
Если надо записать base64 в текстовый файл, тогда хоть в OEM, хоть в cp1251 должно записать без всяких bom.
15 H A D G E H O G s
 
02.04.12
12:05
(14) utf с вами будет не согласен.
16 gvsgvs
 
02.04.12
12:06
я пробовал во всех доступных кодировках ОЕМ, ANSI, Системная, UTF16, UTF8 результта один и тоже а именно 3 байт откуда то в начале файла
17 H A D G E H O G s
 
02.04.12
12:06
18 gvsgvs
 
02.04.12
12:06
а когда рукми все делаешь этих трех байтов в начле файла нет
19 pumbaEO
 
02.04.12
12:09
Текст1 = Новый ТекстовыйДокумент;
Текст1.УстановитьТекст(Стр1);
Текст1.Записать("путь", "cp866");
20 gvsgvs
 
02.04.12
13:13
спасибо все получилось
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.