LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Сохранени...
 Тема: Сохранение файла в DOS-формате
 
 15.06.2007 21:10:05
Алексей5
15 сообщения


Тема: Сохранение файла в DOS-формате
Здравствуйте! Скажите, пожалуйста, как программно сохранить данные в обыкноменный текстовый файл но в DOS-формате? Желательно реальные предложения, а не ссылки на что-то похожее в форуме, так как то что есть в нем (форуме) либо не работает, либо слишком абстрактно.
Буду благодарен за помощь.
С уважением, Алексей.


P.S. Общие вопросы по модулям
Автор: Алексей от 10.07.2006 21:16:05 Источник ...
 15.06.2007 21:10:05
Евгений10
73 сообщения


RE: Сохранение файла в DOS-формате
Здравствуйте Алексей.
Никаких ссылок, реальное предложение:

Public Function CurrentPath() As String'путь к базе данных
Dim sNam As String
sNam = CurrentDb.Name
CurrentPath = Left(sNam, Len(sNam) - Len (<Имя базы данных>) - 1)
End Function

Sub PrintDos()'создание файла
Dim rst As Recordset, Stt As String, i As Integer
Stt = "totxt"' название таблицы или запроса
Set rst = CurrentDb.OpenRecordset(Stt)
NameTXT = CurrentPath & "\Names.txt"
rst.MoveFirst
Open NameTXT For Output As #1
i = 0
Do Until rst.EOF
Stt = rst(0) & " " & rst(1) & " " & rst(2) & " " & rst(3) & " " & rst(4)'собираем данные из полей рекордсета
Stt = WinDosDecode(Stt)'Смена кодировки
Stt = Stt & vbCrLf
i = i + 1
Print #1, (Stt);
rst.MoveNext
Loop
Close #1
rst.Close
If ViewDOS Then Shell "notepad.exe " & NameTXT, vbNormalFocus
End Sub

Function WinDosDecode(strTXT As String) As String
Dim i As Integer, strDOS() As String, strDOS_TXT As String
ReDim strDOS(1 To Len(strTXT))
Dim mmm As Integer
For i = 1 To Len(strTXT)
mmm = Asc(Mid(strTXT, i, i))
If mmm < 192 Then
strDOS(i) = Chr(mmm)
ElseIf mmm >= 240 And mmm <= 255 Then
strDOS(i) = Chr(mmm - 16)
ElseIf mmm >= 192 And mmm <= 239 Then
strDOS(i) = Chr(mmm - 64)
End If
Next i
For i = 1 To UBound(strDOS, 1)
strDOS_TXT = strDOS_TXT & strDOS(i)
Next i
WinDosDecode = strDOS_TXT
End Function

Удачи.



P.S. Общие вопросы по модулям
Автор: Евгений от 10.07.2006 22:33:15 Источник ...
 15.06.2007 21:10:05
Алексей5
15 сообщения


Сохранение файла в DOS-формате
Здравствуйте Евгений. Большое спасибо за ответ. Вы даже не представляете как меня выручили. Особенно помогла ваша функция WinDosDecode. Если бы вы живили в моем городе, я обязательно позвал бы вас на пиво. Но пути Господни не исповедимы... Еще раз Большое спасибо. Только возникл 1 вопрос:
Я сохраняю данные в файл использую Put, а вы используете Print. Если разница в использовании данных процедур и если есть то какая?
С уважением, Алексей.


P.S. Общие вопросы по модулям
Автор: Алексей от 12.07.2006 1:22:14 Источник ...
 15.06.2007 21:10:05
Евгений10
73 сообщения


RE: Сохранение файла в DOS-формате
Здравствуйте Алексей

Put или Print, Поместитесь или Печатать в файл, не главное.
Важен результат, а он Вас удовлетворяет.

Удачи.


P.S. Общие вопросы по модулям
Автор: Евгений от 12.07.2006 12:29:20 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Сохранени...
ПоискПоиск  Список форумовСписок форумов  
right