Проблема:
Имеется текстовый файл. Необходимо програмно дописать какую-либо информацию не в конец файла, как при использовании "Append", а в произвольное место файла.
Решение:
Текстовые файлы содержат строки переменной длины, снабженные маркерами конца строки. Для работы с текстовыми файлами следует использовать стандартные режимы Input, Append и Output.
Поскольку текстовые файлы, в отличие от файлов прямого доступа, нельзя открыть одновременно на чтение и на запись, для изменения текстового файла необходимо воспользоваться вспомогательным файлом. Во вспомогательный файл записываются необходимые результирующие данные, после чего исходный файл удаляется с диска, а имя вспомогательного файла заменяется на имя исходного. Далее, поскольку строки, содержащиеся в текстовом файле, могут иметь различную длину, для определения числа строк необходимо последовательно считать из файла все его строки. В отличие от строковых файлов прямого доступа, в VB5-6 для чтения данных из текстовых файлов вполне допустимо использовать переменные типа String, не фиксируя их размер.
Пример:
Код: Выделить всё
Dim F1, F2 As Integer
Dim FileName1, FileName2, ReadFromFile, SearchWord, NewVocWord As String
NewVocWord = Inputbox ("Введите слово для добавления", "Добавление слова в файл")
SearchWord= Inputbox ("Введите слово для поиска", "Добавление слова в файл")
F1 = FreeFile()
Open FileName1 For Input Access Read Lock Write As #F1
F2 = FreeFile()
Open FileName2 For Output Access Write Lock Read Write As #F2
Do Until EOF(F1)
Line Input #F1, ReadFromFile
Print #F2, ReadFromFile
If UCase(Trim(ReadFromFile)) = SearchWord Then
Print #F2, NewVocWord
End If
Loop
Close #F1
Close #F2
Kill FileName1
Name FileName2 As FileName1