Snote (Аналог блокнота с возможностью шифрования)

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 31.01.2008 (Чт) 13:38

VKS писал(а):Open file_For Binary As #2
Put #2, , ByteA()
Close #2

При условии, что ByteA действительно состоит из 10 байт в файл запишется именно 10 байт. Для успокоения совести только что проверил таким кодом:

Код: Выделить всё
Sub WriteToFile()
ReDim b(0 To 9) As Byte
Dim i As Long
For i = 0 To 9
    b(i) = i
Next i
Dim nFile As Long: nFile = FreeFile
Open "C:\Temp\Test.dat" For Binary As nFile
Put nFile, , b
Close nFile
End Sub

Размер файла 10 байт.
З.Ы. Про ByVal действительно несколько мутно выразился...
Весь мир матрица, а мы в нем потоки байтов!

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 31.01.2008 (Чт) 13:45

Viper писал(а):
VKS писал(а):Open file_For Binary As #2
Put #2, , ByteA()
Close #2

При условии, что ByteA действительно состоит из 10 байт в файл запишется именно 10 байт. Для успокоения совести только что проверил таким кодом:

Код: Выделить всё
Sub WriteToFile()
ReDim b(0 To 9) As Byte
Dim i As Long
For i = 0 To 9
    b(i) = i
Next i
Dim nFile As Long: nFile = FreeFile
Open "C:\Temp\Test.dat" For Binary As nFile
Put nFile, , b
Close nFile
End Sub

Размер файла 10 байт.
З.Ы. Про ByVal действительно несколько мутно выразился...



это какойто глюк у меня. грешу на ReDim Preserve ... (но в итоге в отладчике вижу что перед записью дам 10 байт, тем более Ubound(ByteA) = 9 или изза того что ByteA объявлена как Global ByteA() as Byte)
Просто больше ничего в голову не приходит.. так как твой код в остальном идентичный...

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


Кстати: у тебя Put nFile, , b - а разницы нет между Put nFile, , b и Put nFile, , b(). А то у меня именно со скобками....

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 31.01.2008 (Чт) 14:03

VKS писал(а):Кстати: у тебя Put nFile, , b - а разницы нет между Put nFile, , b и Put nFile, , b(). А то у меня именно со скобками....

В данном случае, что b, что b() три раза одинаково

ADD: проверил вариант с Public - 10 байт!
Весь мир матрица, а мы в нем потоки байтов!

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 31.01.2008 (Чт) 14:32

Viper писал(а):
VKS писал(а):Кстати: у тебя Put nFile, , b - а разницы нет между Put nFile, , b и Put nFile, , b(). А то у меня именно со скобками....

В данном случае, что b, что b() три раза одинаково

ADD: проверил вариант с Public - 10 байт!


Пункт 3 снят. Разобрался - всё ок. Спасибо!!!

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 31.01.2008 (Чт) 15:52

Совсем забыл спросить. Есть ли какойто быстрый способ преобразования из массива в строку кроме как?:

for l = 0 to ubound(byteArr)
str = str & chr(byteArr(l))
next l

возможно через API?

А то чтото я ничего не нашёл.. может просто туплю малость... подскажите пожалста
Последний раз редактировалось VKS 31.01.2008 (Чт) 16:09, всего редактировалось 1 раз.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 31.01.2008 (Чт) 16:05

Есть:
Код: Выделить всё
str = byteArr
Весь мир матрица, а мы в нем потоки байтов!

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 31.01.2008 (Чт) 16:08

Viper писал(а):Есть:
Код: Выделить всё
str = byteArr


=))))))))))))))) век живи - век учись.=)

огромное спасибо за помощь!

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 31.01.2008 (Чт) 17:15

Viper

Прошу прощения за назойливость.. Вот кусок кода для примера:
ReDim byteAr(9)
Dim str As String
For l = 0 To 9
byteAr(l) = l + 49
Next l
str = byteAr()


на выходе в str содержит "Я идиот! Убейте меня, кто-нибудь!" вместо "123456789". И наоборот при помешении в byteAr() из str в итоге получается массив - 49 0 50 0 51 0 52 0 53 0 54 0 55 0 56 0 57 0

Я так понимаю он в Юникоде скидывает? а есть возможность переложить "as is" по байтам чтобы размер массива был равен длине стринга... спасибо

Сам и отвечу - проблема решилась благодаря StrConv(str, vbFromUnicode)[/b]
Последний раз редактировалось VKS 31.01.2008 (Чт) 17:20, всего редактировалось 1 раз.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 31.01.2008 (Чт) 17:18

Юзай StrConv.
Лучший способ понять что-то самому — объяснить это другому.

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 02.02.2008 (Сб) 11:24

Спасибо всем за помощь - выпустил обновление благодаря вашим ответам. Скорость возрасла более чем на 1000% (раньше массив обрабатывался в stringе) :D . Мне программа теперь даже нравиться начала.

Ещё раз спасибо! :wink:

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 05.02.2008 (Вт) 14:41

И ещё вопрос: :oops:

При попытке выполнить к примеру
Me.RICHTX32_.Text = Chr(0) & ...
получаю в результате
Run-time error '7' - Out of memory

это глюк RICHTX32.OCX? неужели нельзя поместить даже 1 байт hx0?
может быть подстажете какойто мненее "глючный" проверенный другой компонент который умеет в себя быстро помещать большие объёмы (несколько мегабайт) которые могут содержать не только текст

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 05.02.2008 (Вт) 14:43

VKS писал(а):
это глюк RICHTX32.OCX?


Нет это глюк программиста

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 05.02.2008 (Вт) 14:50

Ну если такой умный - может по подробнее расскажень вчём проблема?

Как к примеру это (00 00 00 1C 66 74 79 70 6D 70) можно "загнать" в компонент?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 05.02.2008 (Вт) 14:56

00 00 00 1C - это не текст и не rtf, не удивительно, что RICHTX32 благим матом орет... Тебе же не приходит в голову жепеги винампом открывать?
Лучший способ понять что-то самому — объяснить это другому.

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 05.02.2008 (Вт) 15:06

Antonariy писал(а):00 00 00 1C - это не текст и не rtf, не удивительно, что RICHTX32 благим матом орет... Тебе же не приходит в голову жепеги винампом открывать?


да.. я догадался что это не текст както сам. Ну а что ты можешь посоветовать если мне нужно поправить бинарник "как текст"? Почемуто RICHTX32 не орёт если первый байт не 0 (дальше ему пофиг).
А к чему здесь jpeg & winamp? потвоему это тожесамое? Я же не пытаюсь выполнить код в компоненте. Мне всего лишь нужно поменять к примеру 1-2 байта. Я так понял что для этой задачи RICHTX32 не самый лучший вириант...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 05.02.2008 (Вт) 16:00

VKS писал(а):
Antonariy писал(а):00 00 00 1C - это не текст и не rtf, не удивительно, что RICHTX32 благим матом орет... Тебе же не приходит в голову жепеги винампом открывать?


да.. я догадался что это не текст както сам. Ну а что ты можешь посоветовать если мне нужно поправить бинарник "как текст"?

Так и открывай его как текст - преобразовывай байт в его числовое значение при открытии, и обратно в байты при сохранении. Т.е. вместо попыток помещения в RTB Chr(0) помещай в него 00 и так далее.
Весь мир матрица, а мы в нем потоки байтов!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 05.02.2008 (Вт) 17:03

"00 00 00 1C - это не текст" означает, что символы chr(0) и chr(28 ) непечатные и их не может быть в заголовке rtf. Поэтому RICHTX32 ругается. Бинарник "как текст" редактировать нельзя.
А к чему здесь jpeg & winamp? потвоему это тожесамое?
Да. RICHTX32 предназначен для файлов строго определенного формата (RTF), произвольный мусор может призвать к свету самые неожиданные глюки.
Я так понял что для этой задачи RICHTX32 не самый лучший вириант...
Абсолютно точно.
Лучший способ понять что-то самому — объяснить это другому.

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 09.02.2008 (Сб) 23:21

Решил проблему по своему... =)

Программу обновил

Antonariy писал(а):Бинарник "как текст" редактировать нельзя.

Кто сказал?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 11.02.2008 (Пн) 8:53

VKS писал(а):Кто сказал?

Народная мудрость!
З.Ы. И здравый смысл!
Весь мир матрица, а мы в нем потоки байтов!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 11.02.2008 (Пн) 9:48

Кто сказал?
Попробуй открыть zip-архив блокнотом, сохранить как новый файл и разархивировать.
Лучший способ понять что-то самому — объяснить это другому.

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 11.02.2008 (Пн) 10:47

Antonariy писал(а):
Кто сказал?
Попробуй открыть zip-архив блокнотом, сохранить как новый файл и разархивировать.


Блокнот имеешь ввиду Microsoft Notepad?
А при чём он здесь - мы же не его здесь обсуждаем. Попробуй открыть программой, которая выложена здесь - мой блокнот. Окроешь архив, перезапишешь и разархивируешь. В этом то и задумка у меня была в отличие от стандартного блокнота - бинарное редактирование "as text" с возможностью вставки любого кода (естественно в том числе и управляющих)

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 11.02.2008 (Пн) 12:19

Идею догнал. Наверное это кому-нибудь нужно :roll:
Лучший способ понять что-то самому — объяснить это другому.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.02.2008 (Пн) 14:04

Попробуй открыть zip-архив блокнотом

А при чём он здесь - мы же не его здесь обсуждаем

Наверное это кому-нибудь нужно


Бинарники редактируются в HEX-редакторах.

с возможностью вставки любого кода (естественно в том числе и управляющих)


Именно для этого и создавались HEX-редакторы.

VKS + Snote = EPIC FAIL
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 11.02.2008 (Пн) 14:54

Денис писал(а):Именно для этого и создавались HEX-редакторы.
VKS + Snote = EPIC FAIL


Уважаемый. Почему ты считаешь что мне нужно то что тебе и наоборот. У тебя какието параноидальные стереотипы сложились обо всех? Так а я тут причём - не я тебя воспитывал..

Теперь к делу.
да, есть туева хуча всяких HEX редакторов - прекрасно. А как ты быстро вставишь к примеру 1 байт между 1000 и 1001 байтами? или наоборот. И кто сказал что это основная функция программы? Но она МНЕ нужна.. и помоему, я не должен у тебя спрашивать разрешение что мне нужно вообще. Я прекрасно знаю что я делаю.. и делаю я это ДЛЯ СЕБЯ. А если я ЭТО делаю ДЛЯ СЕБЯ - значит по какимто странным (для тебя) причинам (так сложилось) - оно МНЕ нужно. Где ты прочитал что я спрашивал нужно мне это делать или нет? Мне нужна была помощь от специалистов, которые дали понятные ответы (и спасибо им за помощь - узнал много нового). Ты то тут причём? Когда я спрашивал - чтото ты не писал по делу. Сейчас на "тявка" "подгавкиваешь" с КПД 0%

Вопрос - какая цель была у твоего поста? Нагрубить мне? (EPIC FAIL) Кроме как наезда - полезности ноль.

Я не нуждаюсь в твоих подобных советах

Фух - попустило.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 11.02.2008 (Пн) 16:28

Ну вы еще подеритесь, горячие финские парни!
:evil:
Весь мир матрица, а мы в нем потоки байтов!

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 13.02.2008 (Ср) 22:01

Не бейте меня сильно, пожалуйста, ногами за флуд - я больше не буду.. :oops: но думаю возможно кому-то это будет интересно:

Я дизассемблировал (для примера) сию программу и сделал статистику по командам asm (какие наиболее часто встречаются)
Итак рейтинг :roll: (естественно TOP):
Asm Кол-во %
push 25'003 29,71
mov 18'543 22,03
lea 13'787 16,38
call 12'461 14,81
cmp 1'860 2,21
jmp 1'467 1,74
...
xor 414 0,49 - находится на 17-м месте (я так понимаю в основном он используется для сброса регистра т.к. xor eax,eax работает быстрее (и меньше байт занимает) чем mov eax,0)

Ещё раз прошу прощения за возможный флуд, но думаю что в этой теме это, более менее, уместно :oops: [/b]

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 13.02.2008 (Ср) 23:40

Гм. А зачем это?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.02.2008 (Чт) 8:43

VKS писал(а):Я дизассемблировал (для примера) сию программу и сделал статистику по командам asm (какие наиболее часто встречаются)

Сделай статистику по бинарному коду программы, сколько 0 и сколько 1. Это будет гораздо круче.
Lasciate ogni speranza, voi ch'entrate.

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 14.02.2008 (Чт) 11:11

alibek
хи хи - сам не справишься?

01.03.2008 Добавлено:
возможность использовать любой файл в качестве ключа
открытие любого файла программой через 'контекстное меню=>Отправить=>Snote'
вывод CRC32 текста
возможность открытия криптованных файлов с CD (раньше требовался доступ на запись)
возможность отключения уведомления об ошибке доступа к реестру
открытие последнего файла при помощи F9
открытие активной (рабочей) папки

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Сообщение VKS » 06.06.2008 (Пт) 12:10

Приветствую всех!

У меня есть вопрос, на который не смог найти ответ ни в гугле ни на вашем замечательном форуме, суть которого заключается в обработке колеса прогрутки мыши в VB. Я так понял что это можно решить через API.

Если это реально - помогите подсказкой. Очень нужно для моей программы.

Пред.След.

Вернуться в Наши проекты

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23

    TopList