Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengambil string dari bagian yang ditentukan dalam file inisialisasi.
Sintaksis
DWORD GetPrivateProfileStringA(
[in] LPCSTR lpAppName,
[in] LPCSTR lpKeyName,
[in] LPCSTR lpDefault,
[out] LPSTR lpReturnedString,
[in] DWORD nSize,
[in] LPCSTR lpFileName
);
Parameter
[in] lpAppName
Nama bagian yang berisi nama kunci. Jika parameter ini
[in] lpKeyName
Nama kunci yang string terkaitnya akan diambil. Jika parameter ini
[in] lpDefault
String default. Jika kunci lpKeyName
Jika parameter ini NULL, defaultnya adalah string kosong, "".
Hindari menentukan string default dengan karakter kosong berikutnya. Fungsi ini menyisipkan
[out] lpReturnedString
Penunjuk ke buffer yang menerima string yang diambil.
[in] nSize
Ukuran buffer yang diacu oleh parameter
[in] lpFileName
Nama file inisialisasi. Jika parameter ini tidak berisi jalur lengkap ke file, sistem akan mencari file di direktori Windows.
Mengembalikan nilai
Nilai yang dikembalikan adalah jumlah karakter yang disalin ke buffer, tidak termasuk karakter null
Jika
Jika lpAppName atau lpKeyName NULL dan buffer tujuan yang disediakan terlalu kecil untuk menahan semua string, string terakhir dipotong dan diikuti oleh dua karakter null. Dalam hal ini, nilai pengembalian sama dengan nSize minus dua.
Jika file inisialisasi yang ditentukan oleh lpFileName tidak ditemukan, atau berisi nilai yang tidak valid, fungsi ini akan mengatur errorno dengan nilai '0x2' (File Tidak Ditemukan). Untuk mengambil informasi kesalahan yang diperluas, panggil GetLastError.
Komentar
Fungsi GetPrivateProfileString
[section]
key=string
.
.
.
Jika lpAppNameNULL, GetPrivateProfileString menyalin semua nama bagian dalam file yang ditentukan ke buffer yang disediakan. Jika lpKeyNameNULL, fungsi menyalin semua nama kunci di bagian yang ditentukan ke buffer yang disediakan. Aplikasi dapat menggunakan metode ini untuk menghitung semua bagian dan kunci dalam file. Dalam kedua kasus, setiap string diikuti oleh karakter null
Jika string yang terkait dengan
Fungsi GetPrivateProfileString
Untuk mengambil string dari file Win.ini, gunakan fungsi GetProfileString
Sistem memetakan sebagian besar referensi file .ini ke registri, menggunakan pemetaan yang ditentukan di bawah kunci registri berikut:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping
Pemetaan ini kemungkinan jika aplikasi memodifikasi file inisialisasi komponen sistem, seperti Control.ini, System.ini, dan Winfile.ini. Dalam kasus ini, fungsi mengambil informasi dari registri, bukan dari file inisialisasi; perubahan lokasi penyimpanan tidak berpengaruh pada perilaku fungsi.
Fungsi profil menggunakan langkah-langkah berikut untuk menemukan informasi inisialisasi:
- Lihat di registri untuk nama file inisialisasi di bawah kunci
IniFileMapping. - Cari nama bagian yang ditentukan oleh lpAppName. Ini akan menjadi nilai bernama di bawah kunci yang memiliki nama file inisialisasi, atau subkunjuk dengan nama ini, atau nama tidak akan ada sebagai nilai atau subkunjuk.
- Jika nama bagian yang ditentukan oleh lpAppName adalah nilai bernama, maka nilai tersebut menentukan di mana dalam registri Anda akan menemukan kunci untuk bagian tersebut.
- Jika nama bagian yang ditentukan oleh lpAppName adalah subkunci, maka nilai bernama di bawah subkunci tersebut menentukan di mana dalam registri Anda akan menemukan kunci untuk bagian tersebut. Jika kunci yang Anda cari tidak ada sebagai nilai bernama, maka akan ada nilai yang tidak disebutkan namanya (ditampilkan sebagai <Tanpa Nama>) yang menentukan lokasi default di registri tempat Anda akan menemukan kunci.
- Jika nama bagian yang ditentukan oleh lpAppName tidak ada sebagai nilai bernama atau sebagai subkey, maka akan ada nilai yang tidak disebutkan namanya (ditampilkan sebagai <Tanpa Nama>) yang menentukan lokasi default di registri tempat Anda akan menemukan kunci untuk bagian tersebut.
- Jika tidak ada subkuntang atau entri untuk nama bagian, maka cari file inisialisasi aktual pada disk dan baca kontennya.
- ! - karakter ini memaksa semua penulisan untuk masuk ke registri dan ke file .ini pada disk.
- # - karakter ini menyebabkan nilai registri diatur ke nilai dalam file .ini Windows 3.1 saat pengguna baru masuk untuk pertama kalinya setelah penyiapan.
- @ - karakter ini mencegah pembacaan masuk ke file .ini pada disk jika data yang diminta tidak ditemukan di registri.
- USR: - awalan ini adalah singkatan dari HKEY_CURRENT_USER, dan teks setelah awalan relatif terhadap kunci tersebut.
- SYS: - awalan ini adalah singkatan dari HKEY_LOCAL_MACHINE\SOFTWARE, dan teks setelah awalan relatif terhadap kunci tersebut.
Contoh
Contoh berikut menunjukkan penggunaan GetPrivateProfileString.
// Gets a profile string called "Preferred line" and converts it to an int.
GetPrivateProfileString (
"Preference",
"Preferred Line",
gszNULL,
szBuffer,
MAXBUFSIZE,
gszINIfilename
);
// if szBuffer is not empty.
if ( lstrcmp ( gszNULL, szBuffer ) )
{
dwPreferredPLID = (DWORD) atoi( szBuffer );
}
else
{
dwPreferredPLID = (DWORD) -1;
}
Nota
Header winbase.h mendefinisikan GetPrivateProfileString sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Platform Target |
Windows |
Header |
winbase.h (termasuk Windows.h) |
Pustaka |
Kernel32.lib |
DLL |
Kernel32.dll |
Lihat juga
GetProfileString