$banner_comment_start
CRACKL@B Оригинальный DVD-ROM крэкера: CRACKL@B DVD !
Домой | Статьи | RAR-cтатьи | Форум | Программирование | Скачать | DVD-ROM
Новичку | FAQ | Ссылки | Интервью | Архив | Новости | Связь


Русский / Russian English / Английский

Сейчас на форуме: crypto, RaMMicHaeL, Ara (+7 невидимых пользователей)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 CRACKL@B —› Программирование —› Прога на C++. Помогите написать!
Посл.ответ Сообщение
Crawler


Ранг: 152.1 (ветеран)
Статус: Участник
X-Literator

Создано: 1 июня 2006 16:56:04
Личное сообщение #1

В общем, вот:

Программа читает файл вида:
[section1]
ptr1=val1
...
ptrn=valN
..................
[sectionN]
ptr1=val1
...
ptrn=valN

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

Например, первый элемент массива будет "Array [ptr1]". Как это реализовать? Я программирую на асме и ВБ, а С++ - знаю только основы ...

-----
ПОДПИСИ - ХЛАМ
d1v0x

Ранг: 79.8 (постоянный)
Статус: Участник

Создано: 1 июня 2006 17:07:33
Личное сообщение #2

погугли по ключевым словам *C++ ini файлы* или чото типа этого и будет тебе щастье
Myk

Ранг: 22.2 (новичок)
Статус: Участник

Создано: 1 июня 2006 18:25:27
Личное сообщение #3

если хочешь на С++ и без ini-файлов - используй std::map
[HEX]


Ранг: 465.5 (мудрец)
Статус: Участник
Иной :)

Создано: 1 июня 2006 18:51:27
Личное сообщение #4

API функцию глянь GetPrivateProfileStringA (читаем данные из INI файлов).

-----
Computer Security Laboratory
NG

Ранг: 145.8 (ветеран)
Статус: Участник
www.int3.net

Создано: 1 июня 2006 23:39:11
Личное сообщение #5

[HEX] пишет:
API функцию глянь GetPrivateProfileStringA

+1. если действительно хоть что-то написал на асме, то на плюсы перепишешь за полчаса максимум.

STL юзать не стоит, разбираться будешь дольше =)
mrX

Ранг: 11.2 (новичок)
Статус: Участник

Создано: 2 июня 2006 00:34:11
Личное сообщение #6

[HEX]
NG
-2
Юзать GetPrivateProfileStringA - дурной тон.
This function is provided only for compatibility with 16-bit Windows-based applications. Applications should store initialization information in the registry.

А так вообще Myk дал хороший совет, с использованием контейнера map подобная задача решается быстро.
NG

Ранг: 145.8 (ветеран)
Статус: Участник
www.int3.net

Создано: 2 июня 2006 01:30:47
Личное сообщение #7

mrX пишет:
Юзать GetPrivateProfileStringA - дурной тон.

в данном случае - нихера подобного.
если внимательно прочитать цитату, то дойдет, что это актуально для проектировки приложений, а не для простых задачек.
Asterix

Ранг: 451.8 (мудрец)
Статус: Участник

Создано: 2 июня 2006 01:56:45
Личное сообщение #8

mrX
не нужно вырывать фразу из контекста

The GetPrivateProfileString function retrieves a string from the specified section in an initialization file. This function is provided for compatibility with 16-bit Windows-based applications. Win32-based applications should store initialization information in the registry.

я сам решаю хранить мне в реестре или использовать ini, по моему мнению ini кошернее
mrX

Ранг: 11.2 (новичок)
Статус: Участник

Создано: 2 июня 2006 14:05:09 · Поправил: mrX
Личное сообщение #9

Asterix
Я ничего не вырывал - взял то, что было.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysin fo/base/getprivateprofilestring.asp


NG
Asterix
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winpr og/winprog/obsolete_windows_programming_elements.asp
The following table provides a list of functions that are supported only for backward compatibility with the 16-bit Windows API.
Конечно никто не запретит использовать устаревшие функции, но не известно, какие могут возникнуть проблемы при переходе на следующее поколение Windows.
Valenok Pirojkov

Ранг: 15.3 (новичок)
Статус: Участник

Создано: 2 июня 2006 14:15:33
Личное сообщение #10

mrX пишет:
проблемы при переходе на следующее поколение Windows.

назови не системную winapi функцию которая была в 9х и которой нет в хр
помоему таких нет
Asterix

Ранг: 451.8 (мудрец)
Статус: Участник

Создано: 2 июня 2006 15:35:37 · Поправил: Asterix
Личное сообщение #11

mrX
Ты прочитал только первое предложение(This function is provided only for compatibility with 16-bit Windows-based applications.) и сделал неправльный вывод ;)
По мнению MS интерфейс ini устарел и следует использовать реестр, но не функции
устарели.
Если тебе это не очевидно используй реестр как советует MS(Applications should store initialization information in the registry.).
Step

Ранг: 64.6 (постоянный)
Статус: Участник

Создано: 2 июня 2006 15:48:35
Личное сообщение #12

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


Идёшь сюда:
hххp://www.rsdn.ru/search/
Вводишь:
Класс работы ini
Получаешь результат.
Crawler


Ранг: 152.1 (ветеран)
Статус: Участник
X-Literator

Создано: 2 июня 2006 17:55:51
Личное сообщение #13

Спасибо всем, хоть я и мало что понял А переписать с asm на С++ - трудно, если ты в последнем ничего не смыслишь ...

-----
ПОДПИСИ - ХЛАМ
NG

Ранг: 145.8 (ветеран)
Статус: Участник
www.int3.net

Создано: 2 июня 2006 19:12:51
Личное сообщение #14

mrX пишет:
Конечно никто не запретит использовать устаревшие функции, но не известно, какие могут возникнуть проблемы при переходе на следующее поколение Windows.

никаких проблем не возникнет. вспоминая товарища Чена: "знаете ведь, что в венде вот это сделано криво. а знаете почему? ради совместимости с дремучими версиями, да."
killsniper

Ранг: 42.4 (посетитель)
Статус: Участник

Создано: 3 июня 2006 14:47:57
Личное сообщение #15

Как вариант - ручками написать сканнер и несложный синтаксис/семантику для этого всего. Если надо, исходник сканнера у меня есть.
ZaZa

Ранг: 28.9 (посетитель)
Статус: Участник

Создано: 3 июня 2006 15:37:50
Личное сообщение #16

А можно сделать еще проще +) Зачем изобретать велосипед, если другие люди уже все сделали до вас?

ВЫВОД:
1. Идешь на http://koders.com/
2. Выбираешь язык, в твоем случае C++
3. Устанавливаешь Text1.Text = "GetPrivateProfileString" (для тех, кто в танке поясню: вбиваешь искомую строку)
4. Давишь на кнопку Search

Вылазит всякой хрени много, ищещь там да ивсе, там точно есть!!!!! +)))))))
ZaZa

Ранг: 28.9 (посетитель)
Статус: Участник

Создано: 3 июня 2006 15:40:51
Личное сообщение #17

Для тех, кто в танке и в шлеме:

c525_03.06.2006_CRACKLAB.rU.tgz - CIniFile.cpp
Crawler


Ранг: 152.1 (ветеран)
Статус: Участник
X-Literator

Создано: 4 июня 2006 01:00:29
Личное сообщение #18

Мда.. Это был курсовик, и я его сдал... Посмотрите

39ce_04.06.2006_CRACKLAB.rU.tgz - hash.cpp

-----
ПОДПИСИ - ХЛАМ
killsniper

Ранг: 42.4 (посетитель)
Статус: Участник

Создано: 4 июня 2006 07:52:16
Личное сообщение #19

И это курсовик???

У нас лаба по хеш-таблицам на втором больше была!
Crawler


Ранг: 152.1 (ветеран)
Статус: Участник
X-Literator

Создано: 5 июня 2006 12:04:43
Личное сообщение #20

Ну... Я - криптограф, а не кодер по образованию. И курс тоже второй.
Еще раз всем спасибо, вы мне очень помогли. С++ сдал на 5 только что =)

-----
ПОДПИСИ - ХЛАМ
killsniper

Ранг: 42.4 (посетитель)
Статус: Участник

Создано: 5 июня 2006 19:49:52
Личное сообщение #21

Мои поздравления. А вот у нас 30 - спец. глаы, они же - *опа, они же - виселица. Верёвку мылю вот...
Crawler


Ранг: 152.1 (ветеран)
Статус: Участник
X-Literator

Создано: 6 июня 2006 23:52:46
Личное сообщение #22

Да ладно, у нас зато теория чисел - тоже виселица была...

-----
ПОДПИСИ - ХЛАМ
mrX

Ранг: 11.2 (новичок)
Статус: Участник

Создано: 7 июня 2006 03:11:41 · Поправил: mrX
Личное сообщение #23

Crawler пишет:
Да ладно, у нас зато теория чисел...

Один из интереснейший курсов из тех, что были в универе в мое время.
Crawler


Ранг: 152.1 (ветеран)
Статус: Участник
X-Literator

Создано: 7 июня 2006 11:27:22
Личное сообщение #24

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

-----
ПОДПИСИ - ХЛАМ
 CRACKL@B —› Программирование —› Прога на C++. Помогите написать!
    Для печати 


Оригинальный DVD-ROM крэкера: CRACKL@B DVD !


Вы находитесь на форуме сайта CRACKLAB.RU
Проект ReactOS