Читать зашифрованный файл

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dogmatos
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 21.04.2003 (Пн) 9:56

Читать зашифрованный файл

Сообщение Dogmatos » 21.04.2003 (Пн) 10:22

Есть массив данных, который шифруется с помощью ключа и оператора XOR.
Затем он записывается в файл.
Если данные не шифровать, то последующее их чтение из файла не составляет труда. Построчно, используя, например - "Line Input #1, Tmp".
В случае с шифрование данные могут быть записаны не в одну строчку, а в несколько, засчет того, что в них могут входить символы перевода каретки.

Ребяты, подскажите, пожалуйста, как реализовать побитовое чтени и запись данных, так, чтобы можно было достать мои данные правильным образом? Может есть какие-то решения?
Спасибо.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 21.04.2003 (Пн) 10:38

Открывай файл как binary и проблем не будет.

Dogmatos
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 21.04.2003 (Пн) 9:56

Сообщение Dogmatos » 21.04.2003 (Пн) 10:52

Да, я понимаю, что нужно открывать файл в режиме binary. И, соответственно, сохранять тоже в этом режиме. Но я не очень понимаю, как мне отследить когда возник конец стоки данных. Длинна каждой строки неопределенная и в зашифрованном виде может занимать несколько строк за счет перевода кореток, количество которых мне неизвестно.
Покажите, пожалуйста, какой-нибудь пример, если есть, буду признателен.
Может нужно ставить какие-то флаги в конце каждой строки данных и анализировать их или как?
Сразу скажу, что с бинарными файлами я еще не работал, и с трудом пока понимаю как работать с PUT и GET.
Спасибо

Dogmatos
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 21.04.2003 (Пн) 9:56

Сообщение Dogmatos » 21.04.2003 (Пн) 13:43

Может, действительно, использовать специальный разделитель, например, "Вася Пупкин", между строками данных?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 21.04.2003 (Пн) 13:44

Между строками и так есть разделитель - vbCrLF зачем выдумывать велосипед?

Dogmatos
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 21.04.2003 (Пн) 9:56

Сообщение Dogmatos » 21.04.2003 (Пн) 14:00

Я поэтому и зашел в форум, чтобы велосипед не изобретать.
Вот и советуюсь с Вами.
Значит я так понял, что можно попробовать сделать следующее:
Записывать файл бинарно используя GET, в конце каждой строки данных вставлять vbCRLF
Затем, когда начну читать этот бинарный файл, используя GET, сканить файл до тех пор пока не встречу vbCRLF, что будет означать конец строки данных, затем далее до нового vbCRLF (конец второй строки данных) и т.д. ?
Или как-то по другому?

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 21.04.2003 (Пн) 18:32

Именно так. Либо использовать структуры (т.н. Types в VB).

Например:

Код: Выделить всё
Public Type EncData
        Data As String
        CRC As Long ' Если надо СRС
End Type


И записывать как массив типов. Тогда нужно заголовок, например такой:

Код: Выделить всё
Public Type EncDataHeader
        DataLen As Long
        Records As Long
End Type
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 21.04.2003 (Пн) 18:33

Это может быть через чур, но так описываются форматы файлов. Можно разработать свой собственный.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 659
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 24.04.2003 (Чт) 21:59

А если в результате кодирования и наложения маски я получу символ перевода каретки не там где надо а посередине строки?Я идиот! Убейте меня, кто-нибудь!?
Тогда как быть???


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 97

    TopList