Не работает дозапись WriteFile - VB

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Товарищи, проблема вот в чём, необходимо, чтобы каждый раз при вызове функции она добавляла в файл информацию в следующую строку, либо в произвольную. Попытался в SetFilePointer указать со 2-й строки писать, а она всё равно в 1-ю пишет и ничего не дописывает. Каждый раз в 1-ю строку. Помогите, пожалуйста.
Листинг программы
  1. Option Explicit
  2. Private Const GENERIC_READ = &H80000000
  3. Private Const GENERIC_WRITE = &H40000000
  4. Private Const FILE_SHARE_READ = &H1
  5. Private Const FILE_SHARE_WRITE = &H2
  6. Private Const OPEN_EXISTING = 3
  7. Private Const FILE_BEGIN = 0
  8. Private Const INVALID_HANDLE_VALUE = -1
  9. Private Const CREATE_ALWAYS = 2
  10. Private Const OPEN_ALWAYS = 4
  11. Private Type OVERLAPPED
  12. Internal As Long
  13. InternalHigh As Long
  14. offset As Long
  15. OffsetHigh As Long
  16. hEvent As Long
  17. End Type
  18. Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
  19. Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
  20. Private Declare Function SetEndOfFile Lib "kernel32" (ByVal hFile As Long) As Long
  21. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  22. Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As OVERLAPPED) As Long
  23. Private Sub Command1_Click()
  24.  
  25. Dim szPath As String
  26. Dim dwWrittenBytes As Long
  27. Dim OV As OVERLAPPED
  28. Dim hFile As Long
  29. Dim a() As Byte
  30. a = StrConv("privet", vbFromUnicode)
  31. szPath = "c:\myfile.txt"
  32. hFile = CreateFile(szPath, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_ALWAYS, 0, 0)
  33. If hFile <> INVALID_HANDLE_VALUE Then
  34. Call SetFilePointer(hFile, 2, 0, FILE_BEGIN)
  35. Call WriteFile(hFile, a(0), UBound(a) + 1, dwWrittenBytes, OV)
  36. Call SetEndOfFile(hFile)
  37. Call CloseHandle(hFile)
  38. End If
  39.  
  40. End Sub

Решение задачи: «Не работает дозапись WriteFile»

textual
Листинг программы
  1. Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Any) As Long
  2. .....
  3. Call WriteFile(hFile, a(0), UBound(a) + 1, dwWrittenBytes, ByVal 0&)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут