1

Тема: Запись данных в текстовый файл и из файла с помощью ADODB.Stream

Запись данных в текстовый файл

ADODB – библиотека доступа к базам данных.
ADODB.Stream - в данном случае, проще говоря, это поток для связи с файлом.

Предварительно в файле Word должен быть выделен некоторый отрывок, который записывается в текстовый файл.
Файл Word с выделенным отрывком должен быть активным.
Для записи можно применить следующий макрос:

Sub Writer_To1()
        Dim strUnicode As String  'Содержание записываемого файла
        strUnicode = ""
        Dim Par As Paragraph
        For Each Par In Selection.Paragraphs
            strUnicode = strUnicode & Par.Range.Text & vbLf
        Next Par
        
        Dim FileName As String  'Полное имя записываемого файла
        FileName = ActiveDocument.FullName & ".txt"
        Dim oFS: Set oFS = CreateObject("Scripting.FileSystemObject")
    '    Dim sTFSpec: sTFSpec = oFS.GetAbsolutePathName(FileName)
        If oFS.FileExists(FileName) Then
            oFS.DeleteFile FileName   'Если файл существует, то его нужно удалить
        End If
        
        Dim oTo: Set oTo = CreateObject("ADODB.Stream") 'Поток для связи с файлом
        With oTo
            .Type = 2 'Тип потока: 1 - бинарный; 2 - текстовый
            .Charset = "Windows-1251"  'кодировка
            .Open                    'открытие потока
            .WriteText strUnicode    'запись текста из переменной strUnicode
            .SaveToFile FileName     'запись в файл FileName
            .Close                   'закрытие потока
        End With
    End Sub

Выделенный фрагмент записывается в текстовый файл в той же папке, в которой размещен исходный файл Word.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

2

Re: Запись данных в текстовый файл и из файла с помощью ADODB.Stream

Загрузка из файла

Загрузка производится в конец активного файла Word из текстового файла с именем «1.txt», размещенного в той же папке.

Sub Reader_From1()
    Dim strUnicode As String  'Переменная для ввода данных из файла
    Dim myRange As Range
    
    Selection.EndKey Unit:=wdStory  'переход в конец файла
    Selection.TypeParagraph         'новая строка
    
    Dim FileName As String  'Полное имя вводимого файла
    FileName = ActiveDocument.Path & "\1.txt"
    
    Dim oTo: Set oTo = CreateObject("ADODB.Stream") 'Поток для связи с файлом
    With oTo
        .Type = 2 'Тип потока: 1 - бинарный; 2 - текстовый
        .Charset = "Windows-1251"  'кодировка
        .Open                    'открытие потока
        .LoadFromFile FileName   'считывание из файла FileName
        strUnicode = .ReadText   'загрузка текста в переменную strUnicode
        .Close                   'закрытие потока
    End With
    
    Selection.TypeText strUnicode  'вставка переменной в файл
End Sub
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.