Работа с бинарными файлами - VB

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

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

Как реализовать чтение и запись, произвести изменения в файле, окрытого как бинарный, написано в инете много. А вот как стереть или вставить оперделенный байт? Ответа на данный вопрос в интернете я не нашел. Методом проб и ошибок я нашел как удалить ненужный байт. Допустим в какомто файле есть последовательность 123>456>789 Следущий код стирает символы ">" из данной последовательности
Листинг программы
  1. Dim im As String
  2. Dim DlinaFajla As Double
  3. Private Sub Form_Load()
  4. im = "c:\test.jpg"
  5. End Sub
  6. Private Sub Command1_Click()
  7. Dim usr As String * 1
  8. Dim q As String * 1
  9. DlinaFajla = FileLen(im)
  10. MyFile = FreeFile
  11. Open (im) For Binary As #MyFile
  12. For I = 1 To DlinaFajla Step 1 '
  13. Get #MyFile, I, usr
  14. If usr = ">" Then
  15. Put #MyFile, I, q
  16. End If
  17. Next I
  18. Close #MyFile
  19. End Sub
Результатом будет 123456789 Заменить символ ">" на какой либо другой например "!" тоже нет проблем, а вот как сделать чтобы допустим заменить ">" на группу сиволов, например "!!!", или просто после символа ">" добавить "!!!", но так чтобы не затирались соседние символы тоесть результат должен быть следующий 123!!!456!!!789 или 123>!!!456>!!!>789 Заранее благодарен за ответ!

Решение задачи: «Работа с бинарными файлами»

textual
Листинг программы
  1. Private Sub Command1_Click()
  2. Dim m As String
  3. simvol = "<<<"
  4. Open "c:\111.jpg" For Binary As #1
  5. m = Space(LOF(1))
  6. Get #1, , m
  7. While Not InStr(1, m, simvol) = 0
  8. s1 = InStr(1, m, simvol)
  9. m = Mid$(m, 1, s1 - 1) & ">" & Mid$(m, s1 + Len(simvol), Len(m) - s1)
  10. Wend
  11. Put #1, 1, m
  12. End Sub

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


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

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

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

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

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

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