Запис во ini фајл

Член од
1 февруари 2005
Мислења
1.299
Поени од реакции
1.806
Здраво сакам да запишам податоци место во регистер во ини фајл
проблемот е во тоа
BOOL GetPrivateProfileStruct(
LPCTSTR lpszSection, [in]
LPCTSTR lpszKey, [in]
LPVOID lpStruct, [out]
UINT uSizeStruct, [in]
LPCTSTR szFile [in]
);
uSizeStruct е влезна и однапред не ја знам.

EXECUTE_ASSERT(ERROR_SUCCESS == m_regUtils.SetBinary(TEXT("VideoFormat"), reinterpret_cast<const BYTE*>(&m_vihDefault), sizeof(m_vihDefault)));
EXECUTE_ASSERT(ERROR_SUCCESS == m_regUtils.GetBinary(TEXT("VideoFormat"), reinterpret_cast<LPBYTE>(&m_vihDefault), sizeof(m_vihDefault)));

Јас пробувам по следниот налчин:

WritePrivateProfileStruct(BINARY_SECTION,"AudioFormat",reinterpret_cast<const BYTE*>(&m_wfexDefault),sizeof(m_wfexDefault),sgIniPatch);
GetPrivateProfileStruct(BINARY_SECTION,"AudioFormat", reinterpret_cast<LPBYTE>(&m_vihDefault),sizeof(m_wfexDefault),sgIniPatch);

Би пробал и со WritePrivateProfileString и GetPrivateProfileString само не знам како да претворам reinterpret_cast<LPBYTE>(&m_vihDefault) в LPTSTR и обратно.

Ако нјакој има идеја?
Фала.
 

back_rest

ex mod coder
Член од
19 јули 2006
Мислења
1.590
Поени од реакции
107
Си напукал сто функции и не си јасен ама ич.

Корект ми иф ајм ронг:

- GetPrivateProfileStruct на некој начин служи како гет функција за некоја вредност од некој .INI фајл? Гледам секции и клучеви и такви ствари :)

Двата EXECUTE_ASSERT знам само дека ќе ти служат на некој начин како Debug алатки, ама што ти е финтата со методите внатре, појма ти неам. getBynary од пренесен аргумент текст, и веднаш сместува во поле? Што е тој текст? Покажувач кон нешто?

Единствено што разбрав е дека бараш начин за претварање на поле од бајти во покажуваш кон стринг и обратно?

reinterpret_cast<LPBYTE>(&m_vihDefault) т.е. LPBYTE во LPSTR и обратно?

p.s. И кога ќе видам hard-core C/C++, ми се лоши значи...
 
Член од
1 февруари 2005
Мислења
1.299
Поени од реакции
1.806
reinterpret_cast<LPBYTE>(&m_vihDefault) тоа се користи за запис во регистер, било што да е променлва или цела структура от нешто, било што да е го прави бинарно и го става во регистер, това е оргиналот.
додека WritePrivateProfileStruct прима само LPTSTR, тоа е NULL терминиран стринг.
Сигурно може по тој начин reinterpret_cast<const BYTE*>(&m_wfexDefault) го правам во стринг запишувам со WritePrivateProfileStruct во ini после обратно :)
 

back_rest

ex mod coder
Член од
19 јули 2006
Мислења
1.590
Поени од реакции
107
Оф, абе каст си е каст, што го мешаш сега овде. Кастираш за да се прилагодиш на функцијата, а не дека кастот уствари работи нешто посебно.

Тоа што ти треба на тебе е податокот кој сакаш да го запишуваш или читаш да ти биде во облик на стринг.

Е сега, две прашања:

1. WritePrivateProfileStruct како функција, има само едно преоптоварување? Дали си запознаен со некоја функција блиска до неа која би можела да работи со стрингови? Пошо нели, природата на .ini и регистрите пред се е за чување на броеви и стрингови а дури во ептен потребни модови за бинарни податоци.

2. Користиш C++ со STL??? Таму можеш да ја користиш директно string класата и да ги користиш сите нејзини погодности. Не сум сигурен ама мислам дека дефинитивно би имала начини податоците сместени во нејзе да ги претвори во низа од бајти/карактери и обратно.

btw, check these out: http://ndevilla.free.fr/iniparser/ http://www.compuphase.com/minini.htm
 
Член од
1 февруари 2005
Мислења
1.299
Поени од реакции
1.806
1:Тоа се 6 готови функции за работа со ини фајлови : со integer, LPCTSTR и LPVOID
каде што за последната треба даја знаеш должината UINT uSizeStruct кога читаш.
Таа не ја користам.
Нема други функции сам да интрепетираш текстов фајл доста работа е.
Има некој готови класови ама нема смисол да се услжвнува толку.
Само два реда и ги претвараш едно во друго
2: MFC програма е , string не сум користел сигурно има, само и тие се едни структури месец дена треба додека ги разбереш. Прку CString и разни други комбинации пробувам ама несака се губи нешто при претватањето.
 

back_rest

ex mod coder
Член од
19 јули 2006
Мислења
1.590
Поени од реакции
107
1:Тоа се 6 готови функции за работа со ини фајлови : со integer, LPCTSTR и LPVOID
каде што за последната треба даја знаеш должината UINT uSizeStruct кога читаш.
Таа не ја користам.
Нема други функции сам да интрепетираш текстов фајл доста работа е.
Има некој готови класови ама нема смисол да се услжвнува толку.
Само два реда и ги претвараш едно во друго
2: MFC програма е , string не сум користел сигурно има, само и тие се едни структури месец дена треба додека ги разбереш. Прку CString и разни други комбинации пробувам ама несака се губи нешто при претватањето.
Мој совет ти е да одиш со тоа што веќе е готово. Нема потреба да откриваш топла вода. Ако веќе неможеш со некои готови за запишување на стрингови, разбарај се на нет за претварање на CString во byte[] и обратно.

Што не си е Java, одма ќе завршиме работа :)
 

Kajgana Shop

На врв Bottom