Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / искажение файла при сохранении / 15 сообщений из 15, страница 1 из 1
21.04.2010, 11:55
    #36589673
cynep kopoBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    mfile = "d:\trash\16.jpg"
    mfile1 = "d:\trash\161.jpg"
    Open mfile For Binary As # 1 
        r = Input(FileLen(mfile), # 1 )
    Close # 1 
    Open mfile1 For Binary As # 1 
        Put # 1 , , r
    Close # 1 

картинка "161.jpg" не открывается.
Размер файла увеличился на 8 байт, а занимаемое на диске место - такое же, как и у оригинала.

В чем ошибка?
...
Рейтинг: 0 / 0
21.04.2010, 11:58
    #36589683
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
Код: plaintext
Dim r As ?????
...
Рейтинг: 0 / 0
21.04.2010, 12:00
    #36589693
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
ЗЫ: для вышеописанной операции есть FileCopy Statement (впрочем, ваша задача может быть сложнее, чем вы изложили)
...
Рейтинг: 0 / 0
21.04.2010, 12:00
    #36589698
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
cynep kopoBkaРазмер файла увеличился на 8 байт, а занимаемое на диске место - такое же, как и у оригинала.

Занимаемое место кратно размеру кластера. Ориентируйтесь на длину файла.
...
Рейтинг: 0 / 0
21.04.2010, 12:16
    #36589754
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
У меня на небольшом файле и на файле в 1.5 МБ всё отработало нормально.
...
Рейтинг: 0 / 0
21.04.2010, 12:19
    #36589765
cynep kopoBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
Shocker.Pro,

Он сохранится позже. В другом месте. Просто я вырезал промежуточные операции.
Кстати, при просмотре обычным блокнотом лишние 8 байт оказались в самом начале нового файла. Из-за чего они?
...
Рейтинг: 0 / 0
21.04.2010, 12:19
    #36589768
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
Hugo121У меня на небольшом файле и на файле в 1.5 МБ всё отработало нормально.

ты как при этом r определил?
...
Рейтинг: 0 / 0
21.04.2010, 12:21
    #36589771
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
cynep kopoBkaОн сохранится позже. В другом месте. Просто я вырезал промежуточные операции.
Кстати, при просмотре обычным блокнотом лишние 8 байт оказались в самом начале нового файла. Из-за чего они?

Повторяю вопрос - как вы определили r?
...
Рейтинг: 0 / 0
21.04.2010, 12:26
    #36589795
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
Shocker.Pro,
я его не определял
...
Рейтинг: 0 / 0
21.04.2010, 12:27
    #36589802
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
Очевидно никак, из-за чего в файл добавилась дефиниция не то Variant'а не то SAFEARRAY'я.
...
Рейтинг: 0 / 0
21.04.2010, 12:30
    #36589814
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
AntonariyОчевидно никак, из-за чего в файл добавилась дефиниция не то Variant'а не то SAFEARRAY'я.


cynep kopoBka - ну тогда Используйте Option Explicit!
...
Рейтинг: 0 / 0
21.04.2010, 12:31
    #36589815
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
Так работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Option Explicit

Sub tt()
Dim r$
Dim mfile$, mfile1$
mfile = "C:\Foto\PICT4128.JPG"
    mfile1 = "C:\Foto\PICT4128-2.JPG"
    Open mfile For Binary As # 1 
        r = Input(FileLen(mfile), # 1 )
    Close # 1 
    Open mfile1 For Binary As # 1 
        Put # 1 , , r
    Close # 1 
End Sub
...
Рейтинг: 0 / 0
21.04.2010, 12:32
    #36589825
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
И кстати в этом варианте файлы идентичны. Если не определять, есть расхождение в 8 байт.
...
Рейтинг: 0 / 0
21.04.2010, 12:37
    #36589844
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
r - должен быть массив байт
...
Рейтинг: 0 / 0
21.04.2010, 12:49
    #36589878
cynep kopoBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
искажение файла при сохранении
Спасибо, учту.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / искажение файла при сохранении / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]