8.х Чтение файла

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем CSCO12103692, 12 июл 2012.

  1. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Всем доброго времени суток.

    Помогите пожалуйста 1С-нубу встрявшему с чтением файла.

    Что имеем: средствами 1С пользователь формирует некий файл. Файл этот для железки поэтому он естесна определенного размера, в жестком формате, просто так нечитаемый. Эту часть я сделал, все формируется и пишется и железка с ним счастлива. Лампочки горят, поезда ездят.

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

    И вот с чтением у меня проблема. Как я его не пытаюсь открыть он считывается почему-то не весь..
    Например делаю чтонибудь такое
    Код:
      File1 = Новый ДвоичныеДанные(ИмяФайла);
    
    Но он считывает из полных 64600 байт только 770 (проверял чтением и последующей записью File1).

    Вопрос: нужно получить полностью содержимое файла, все 64600 из 64600 байт в строку или массив или как угодно. Нули там или любые символы - неважно. Получить содержимое и дальше я сам с ним разберусь

    Как???

    Хотел подгрузить файл для примера но форум ругается, говорит "Вы не можете загружать файлы подобного типа"

    ЗЫ
    В принципе понятно, что базу можно делать в промежуточном читаемом формате, его же читать и редактировать, а непосредственно перед записью в железку создавать банарник уже на его базе, но я верую, что можно сделать и по моему :). Прямо прочитать что угодно и как угодно изменить!!
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    В СП посмотрите про тип Текстовый документ.
  3. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    мм.. а что там с текстовым документом? Он мне возвращает 17 вопросов и все.
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    В содержании, Общие объекты -> Текстовый документ -> ТекстовыйДокумент
    Смотрите методы этого типа.
  5. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Хорошо, отвечу длинно)

    Код:
      File1 = Новый ТекстовыйДокумент;
    File1.Прочитать(БазаДанных1,"ISO-8859-1");
    
    Запись = Новый ЗаписьТекста ("ккк.bd","ISO-8859-1",,, Символы.ПС);
    Запись.Записать(File1);
    Запись.Закрыть();
    
    БазаДанных1 - исходный файл с длиной 64600
    ККК.bd выходной, то есть считываем "БазаДанных1" и что счяитали пишем в него. На выходе 17 байт, все вопросы.

    Ну да ладно, бог с ним, проблему решил.
    Нужно было просто использовать ЧтениеТекста

    Код:
      ReadBD1 = Новый ЧтениеТекста(БазаДанных1,"ISO-8859-1");
    File1 = ReadBD1.Прочитать();
    
    Запись = Новый ЗаписьТекста ("ККК.bd","ISO-8859-1",,, Символы.ПС);
    Запись.Записать(File1);
    Запись.Закрыть();
    Такое читает все без обрезаний.

Поделиться этой страницей