Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых)

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


Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

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

В общем, вот:

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

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

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

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




Ранг: 79.4 (постоянный)
Активность: 0.090
Статус: Участник

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

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



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

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

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




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

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

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

-----
Computer Security Laboratory




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

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

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

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

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



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

Создано: 02 июня 2006 00:34
· Личное сообщение · #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 подобная задача решается быстро.



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

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

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

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



Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 02 июня 2006 01:56
· Личное сообщение · #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 кошернее



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

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

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


NG
Asterix
msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/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.



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

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

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

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



Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 02 июня 2006 15:35 · Поправил: 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.).



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

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

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


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




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

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

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

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




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

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

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

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



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

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

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




Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

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

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

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

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

-----
One death is a tragedy, one million is a statistic.





Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

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

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

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

-----
One death is a tragedy, one million is a statistic.





Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

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

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

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

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




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

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

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

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




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

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

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

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




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

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

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




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

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

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

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




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

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

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

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




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

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

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

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.



 eXeL@B —› Программирование —› Прога на C++. Помогите написать!
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати