|
|
|
| Для записи использую функцию
Function Zapis_V_File(Put_File As String, STROKA As String)
Const ForReading = 1, ForWriting = 2, ForAppending = 3, TristateFalse = True
Dim fs
Dim a 'As Scripting.TextStream
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.OpenTextFile(Put_File, ForWriting, TristateFalse)
a.Write STROKA
a.Close
Set fs = Nothing
End Function
|
Но каждый раз dcq предыдущие записи в текстовом файле стираются,
вопрос: дописывать возможно или сложно?
Я слыхал, что нужно переписывать весь файл с сохранением где-то уже имеющегося. текста с добавлением нового в конец........ | |
|
| |
|
|
|
| Вроде бы как получается вот так:
Function Dobavka_V_File(Put_File As String, STROKA As String)
hFile = FreeFile
Open Put_File For Append Access Write As hFile
Print #hFile, STROKA
Close hFile
End Function
|
| |
|
| |
|
|
|
| И в FSO будет работать, если указать ForAppending вместо ForWriting.
Почему a.Write, а не a.WriteLine?
ЗЫ. Я предпочитаю пользоваться встроенными средствами VBA (как во втором вашем примере).
Там и возможностей больше, и никакой зависимости от внешних библиотек.
У .OpenTextFile единственное преимущество - может работать с Unicode файлами. Но это еще нужно придумать, где применить. | |
|
| |
|
|
|
|
| А вы его гвоздиками приколотите, тогда точно не отвалится. | |
|
| |
|
|
|
| АААААААААААААААА Lukas - добрый вечер!!!!!!
Вот нашёл:
Кривцов Анатолий г.Киев
Кто пробовал выполнить экспорт в текстовый файл, знает, что экспортировать можно только данные из таблицы или запроса, не имеющего параметров или ссылок на элементы форм. Проблема решается созданием файла непосредственно в процедуре. Идея принадлежит Фаине Крамаровской. Предлагаемая процедура создает файл C:\WarePrice.txt в формате "Переменной длинны с разделителями".Первая строка - имена полей, разделители полей -"#", кодировка символов - DOS (функция ConvANSItoOEM). Такой метод работает быстрее, чем стандартный, и позволяет за один проход создать два и более файлов (например для экспорта в таблицы на стороне "один" и "многие").
Function EksportWarePrice()
Dim dbs As Database, qdf as QueryDef, _
rst As Recordset, NameFld As String
Set dbs = CurrentDb
Set qdf = dbs.CreateQueryDef("")
qdf.SQL= "Parameters .... Select ..."
qdf.Parameters("Имя параметра") = Значение
Set rst = qdf.OpenRecordset
If rst.BOF Then
Exit Function
End If
Open "C:\WarePrice.txt" For Output As #1
NameFld = "WareID#WareName#Price"
Print #1, NameFld
With rst
Do Until .EOF
Print #1, ![WareID] & "#" _
& ConvANSItoOEM(![WareName]) & # _
& Format(![Price],"#.00")
.MoveNext
Loop
End With
Close #1
End Function
|
| |
|
| |
|
|
|
| АААААААААААААААА Lukas - добрый вечер!!!!!!
Вот нашёл:
Кривцов Анатолий г.Киев писал в своё время:
Кто пробовал выполнить экспорт в текстовый файл, знает, что экспортировать можно только данные из таблицы или запроса, не имеющего параметров или ссылок на элементы форм. Проблема решается созданием файла непосредственно в процедуре. Идея принадлежит Фаине Крамаровской. Предлагаемая процедура создает файл C:\WarePrice.txt в формате "Переменной длинны с разделителями".Первая строка - имена полей, разделители полей -"#", кодировка символов - DOS (функция ConvANSItoOEM). Такой метод работает быстрее, чем стандартный, и позволяет за один проход создать два и более файлов (например для экспорта в таблицы на стороне "один" и "многие").
Function EksportWarePrice()
Dim dbs As Database, qdf as QueryDef, _
rst As Recordset, NameFld As String
Set dbs = CurrentDb
Set qdf = dbs.CreateQueryDef("")
qdf.SQL= "Parameters .... Select ..."
qdf.Parameters("Имя параметра") = Значение
Set rst = qdf.OpenRecordset
If rst.BOF Then
Exit Function
End If
Open "C:\WarePrice.txt" For Output As #1
NameFld = "WareID#WareName#Price"
Print #1, NameFld
With rst
Do Until .EOF
Print #1, ![WareID] & "#" _
& ConvANSItoOEM(![WareName]) & # _
& Format(![Price],"#.00")
.MoveNext
Loop
End With
Close #1
End Function
|
| |
|
| |
|
|
|
| Вечер добрый Час. Что-то у меня сегодня в глазах двоится. | |
|
| |
|
|
|
| Эт я дублем, дуплетом или как его там диполем,
двуокисью, близнецом, двуяйцевостью тряхнул..... | |
|
| |