IPB

Здравствуйте, гость ( Вход | Регистрация )

> Visual Basic 6.0, Один вопрос. В книгах банально не нашел.
Гость_Mamont_*
сообщение Feb 1 2007, 10:29
Сообщение #1





Guests






Необходимо написать программу. Все могу сам, но уперся в один вопрос, решение которого ни где не могу найти.

Требуется, чтобы программа не создавая никаких дополнительных файлов могла хранить некоторый объем текстовой информации.

Т.е. запускаешь прогу, записываешь пару строк, закрываешь прогу. Опять запускаешь прогу, и информация введенная ранее доступна для чтения и редактирования.
Вернуться к началу страницы
 
+Цитировать сообщение
2 страниц V  < 1 2  
Создать новую тему
Ответов (20 - 27)
Amp
сообщение Feb 1 2007, 13:29
Сообщение #21


Мега постер
Иконка группы

Группа: Local moder
Сообщений: 1,712
Регистрация: 21.8.2006
Пользователь №: 1,269



а) программа содержит свой же код.
На то она и программа

б) программа пишет код в ноый файл
Для начала ей надо определить по каким адресам ее код вообще лежит.
Прям весь-весь ее код?

3) открой в ассемблере скомпелированную прогу(ехе-файл).
Ок, беру какой-нибудь OllyDebugger и открываю (если я правильно понял вашу мысль)

4) найди блок с резервацией переменных(сам читай как это делать)
Код и данные разделены в программах если что. (если только не использовались на ассемблере db и эти данные не выполняются как код)
Так что мне делать с данными? smile.gif

5) запиши этот нескомпелированный код в начальный код программы на бейсике
Типа захерачить дизассемблированный листинг в бейсковский код?
Вы в своем уме?
А может сразу в бинарный файл? А куда?
И срали мы на адресацию smile.gif

И еще один момент. Речь идет про PE или MZ файлы?

Внимание вопрос - что я делаю не так и что хотели получить?

Сообщение отредактировал Amp - Feb 1 2007, 13:33


--------------------
irc-капец

#КартинкА#
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_belka_*
сообщение Feb 1 2007, 13:37
Сообщение #22





Guests






че ты на мне отрываешься? очень похоже на неудачника, чем на человека желающего помочь...
и понял ты все пркрасно и не надо дурку гнать про адресацию.
умничай с кем-нибудь другим, мудаГГГГ
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_belka_*
сообщение Feb 1 2007, 13:39
Сообщение #23





Guests






сам то понимаешь смысл про физическую и логическую адресации?
Вернуться к началу страницы
 
+Цитировать сообщение
Amp
сообщение Feb 1 2007, 13:48
Сообщение #24


Мега постер
Иконка группы

Группа: Local moder
Сообщений: 1,712
Регистрация: 21.8.2006
Пользователь №: 1,269



Цитата(belka @ Feb 1 2007, 13:39) *
сам то понимаешь смысл про физическую и логическую адресации?

Главу про "Виртуальную память" у Таненбаума я читал, не беспокойтесь.
Только для программ я бы применил словосочетание математический или виртуальный адрес.

Цитата(belka @ Feb 1 2007, 13:37) *
че ты на мне отрываешься? очень похоже на неудачника, чем на человека желающего помочь...
и понял ты все пркрасно и не надо дурку гнать про адресацию.
умничай с кем-нибудь другим, мудаГГГГ

Оскорбления - дело последнее. Научитесь культуре общения, потом отписывайтесь на форуме

Сообщение отредактировал Amp - Feb 1 2007, 13:53


--------------------
irc-капец

#КартинкА#
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_belka_*
сообщение Feb 1 2007, 13:51
Сообщение #25





Guests






еще пива выпей в честь победы, бугыг
Вернуться к началу страницы
 
+Цитировать сообщение
JoNy202
сообщение Feb 4 2007, 02:00
Сообщение #26


PAUK.NET.RU TEAM
Иконка группы

Группа: Admin
Сообщений: 1,672
Регистрация: 11.7.2005
Из: Чебоксары
Пользователь №: 1



с визуал бэйсиком не знаком, но приведу пример на Си, как я вывожу на экран изображение из базы

Код
// Создан поток в памяти
TMemoryStream *MS = new TMemoryStream();

// Пишем в него данные из базы,
// где stmt->ValueString(0) - это изображение, считаное fread'ом и сохраненное в blob
// stmt->ValueInt(1) - размер изображения в байтах
MS->Write(stmt->ValueString(0), stmt->ValueInt(1));
MS->Seek(0, soFromBeginning);

// Далее просто выводим на экран из потока
mainCreaterForm->FrameAnsvers1->QuestionImage->Picture->Bitmap->LoadFromStream(MS);

// Очищаем запрос и поток
stmt->~SQLiteStatement();
MS->Clear();


Сомневаюсь что бейсик на это способен smile.gif

В качестве БД использована sqlite.


--------------------
Вернуться к началу страницы
 
+Цитировать сообщение
Arturio
сообщение Nov 13 2007, 16:55
Сообщение #27


Пользователь
**

Группа: Posters
Сообщений: 69
Регистрация: 27.10.2007
Из: Новочебоксарск
Пользователь №: 10,895



Цитата(JoNy202 @ Feb 4 2007, 02:00) *
с визуал бэйсиком не знаком, но приведу пример на Си, как я вывожу на экран изображение из базы

Код
// Создан поток в памяти
TMemoryStream *MS = new TMemoryStream();

// Пишем в него данные из базы,
// где stmt->ValueString(0) - это изображение, считаное fread'ом и сохраненное в blob
// stmt->ValueInt(1) - размер изображения в байтах
MS->Write(stmt->ValueString(0), stmt->ValueInt(1));
MS->Seek(0, soFromBeginning);

// Далее просто выводим на экран из потока
mainCreaterForm->FrameAnsvers1->QuestionImage->Picture->Bitmap->LoadFromStream(MS);

// Очищаем запрос и поток
stmt->~SQLiteStatement();
MS->Clear();


Сомневаюсь что бейсик на это способен smile.gif

В качестве БД использована sqlite.

Нужно решить задачи по кубейсику срочно прям по зарез
Нужно определить три элемента одномерного числового массива, имеющих самые маленькие (но неравные значения).


--------------------
Смерть стоит того, чтобы жить,
А любовь стоит того, чтобы ждать...
(В. Цой)
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_Ireul_*
сообщение Nov 13 2007, 20:50
Сообщение #28





Guests






Кубейсик давно забыл, могу максимум подсказать алгоритм.

Делаешь себе для работы массивчик на три элемента или тупо три переменные, и ещё парочку чтобы знать в какой позиции массива/переменной храницца наибольшее из трёх и наименьшее из трёх.

Потом забиваешь в эти три достаточно большие начальные значения, чтобы было гарантированно больше возможных значений изначального массива, и поехали:

для каждого элемента одномерного массива:
1) Сравниваем со всеми тремя нашими. На предмет отсечения равных значений. Если хоть одному равно - переходим к следующему элементу, это число нам не подходит, так как мы ищем неповторяющиеся(неравные) значения.
2) Сравниваем с наибольшим из наших трёх. Если этот элемент больше - то переходим к следующему, это число нам не подходит, так как мы ищем наименьшие значения.
3) Заменяем наибольшее наше на текущий элемент, раз он оказался меньше в шаге 2) и не равным уже имеющимся в шаге 1).
4) Заново определяем какое из наших трёх теперь наибольшее и какое наименьшее - ведь новое число введённое может оказацца на любой из этих позиций, равно как и средним между незатронутыми двумя. 2-3 сравнения в зависимости от вашей сообразительности решат эту проблему.

После прохода этих 4-х шагов по всем элементам массива будем иметь три неповторяющихся наименьших.
Вернуться к началу страницы
 
+Цитировать сообщение

2 страниц V  < 1 2
ОтветитьСоздать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 3rd May 2024 - 23:55