Apakah file windows .ini standar mengizinkan komentar?


92

Apakah komentar diperbolehkan dalam file Windows ini? (... dengan asumsi Anda menggunakan fungsi api GetPrivateProfileString untuk membacanya ...)

[Section]
Name=Value   ; comment

; full line comment

Dan, apakah ada spesifikasi yang tepat untuk format file .INI di mana saja?

Terima kasih atas balasannya - Namun mungkin saya tidak cukup jelas. Saya tertarik hanya dalam format seperti yang dibaca oleh Panggilan API Windows . Saya tahu implementasi lain mengizinkan komentar, tetapi secara khusus spesifikasi dan implementasi MS Windows yang perlu saya ketahui.


1
API mengembalikan Nilai dan Komentar, Anda hanya perlu mencari SemiColon dan membaca, atau menghapus ini ketika bertemu, menggunakan ekspresi reguler atau hanya mencari;
RoguePlanetoid

7
@RoguePlanetoid Ekspresi reguler, untuk menemukan ;karakter? Sungguh !?
IInspectable

1
@IInspectable Bisa menggunakan regex untuk membaca komentar hanya jadi ekstrak elemen setelah titik koma, atau seperti yang saya sebutkan dalam komentar saya atau mencari; memberikan alternatif untuk mengekstrak komentar itu sendiri atau mencari keberadaan komentar saya pikir nilai tambah komentar saya, hanya melihat apakah ada titik koma ada komentar yang tidak lengkap
RoguePlanetoid

Jawaban:


96

Dukungan Windows INI API untuk:

  • Komentar baris : ya, menggunakan titik koma;
  • Komentar terakhir: Tidak

Sumber otoritatif adalah fungsi Windows API yang membaca nilai dari file INI

GetPrivateProfileString

Mengambil string dari bagian yang ditentukan dalam file inisialisasi.

Alasan "komentar baris penuh" berfungsi adalah karena nilai yang diminta tidak ada. Misalnya, saat mengurai inikonten file berikut :

[Application]
UseLiveData=1
;coke=zero
pepsi=diet   ;gag
#stackoverflow=splotchy

Membaca nilai:

  • UseLiveData: 1
  • coke: tidak hadir
  • ;coke: tidak hadir
  • pepsi: diet ;gag
  • stackoverflow: tidak hadir
  • #stackoverflow: splotchy

Pembaruan : Saya dulu berpikir bahwa tanda angka (#) adalah karakter komentar baris semu. Alasan menggunakan # karya terdepan untuk disembunyikan stackoverflowadalah karena namanya sudah stackoverflowtidak ada lagi. Dan ternyata titik koma ( ;) adalah komentar baris.

Tetapi tidak ada dukungan untuk komentar tertinggal.


3
Contoh yang sangat membantu, tetapi saya merasa kata-kata "Alasan 'komentar baris penuh' berfungsi adalah karena nilai yang diminta tidak ada" sulit diurai. Saya akan menjelaskan untuk mengatakan bahwa implementasi Windows INI memerlukan titik koma sebelum pasangan kunci / nilai (jika ada), jika tidak maka akan dianggap sebagai bagian dari nilai.
GravityWell

@Rods Kamu benar. Saya sangat fokus menggunakan #sehingga saya tidak memperhatikan ;. Memperbaiki jawaban untuk menunjukkan bahwa titik koma sebenarnya adalah komentar baris.
Ian Boyd

29

Saya telah melihat komentar di file INI, jadi ya. Silakan merujuk ke artikel Wikipedia ini . Saya tidak dapat menemukan spesifikasi resmi, tetapi itu adalah sintaks yang benar untuk komentar, karena banyak file game INI memiliki ini seperti yang saya ingat.

Edit

API mengembalikan Nilai dan Komentar (lupa menyebutkan ini dalam balasan saya), cukup buat dan contoh file INI dan panggil API ini (dengan komentar) dan Anda dapat melihat bagaimana ini dikembalikan.


1
Saat menggunakan sumber, lebih masuk akal untuk menggunakan sumber yang paling otoritatif dan kemudian sumber pendukung apa pun.
Mike Collins

1
Tentu itu ide yang bagus - tidak ada kata terlambat untuk menunjukkannya - bahkan setelah tujuh tahun
RoguePlanetoid

9

GUNAKAN SEMI-COLON PADA AWAL BARIS --- >>; << ---

Ex.

; last modified 1 April 2001 by John Doe
[owner]
name=John Doe
organization=Acme Widgets Inc.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.