У цьому сімействі форматів файлів, які ми звикли позначати трьома буквами після точки в імені файлу, є дуже дивні, які, власне, ніякої формат і не уявляють.
Чому нас «вчить» розширення файлів – за кожним з них ховається певна внутрішня побайтное структура файлу, а відкрити файл можна тільки за допомогою спеціальної програми, яка цю структуру знає.
Ось розширення-формат jpg – все ясно, це стислий уявлення растрового зображення.
Ось psd – це теж растровое, але вже може зберігати в собі інформацію про шари. Щоб відкрити такий формат, вже потрібен його рідний Photoshop.
Exe – це всім відомий виконуваний файл, простіше кажучи – програма. Тут обов’язково перші два байта – коди двох англійських букв MZ. А ось відкрити такий файл, за великим рахунком, і нічим. Це шіснадцяткові коди команд мікропроцесора комп’ютера. Ні, такі шістнадцятиричні редактори є, але вони тільки для «професіоналів», як кажуть, але дивитися exe-файл навіть ця «когорта недоторканних» боїться як чорт ладану.
А ось ще ціла група розширень – pas, cpp, c, htm, css, js. У тому числі і наш – cfg!
Це дивне сімейство розширень – «все в одному»
Так, це дуже дивні розширення форматів, які не існують! Так, справді, формату pas або формату css або, ближче, cfg – просто не існує. Кожне розширення приховує найпростіший текстовий файл в кодуванні ASCII – для Блокнота.
Справа в тому, що будь-яка програма – це маса допоміжних файлів, це, врешті-решт, вихідні коди, з яких вже і виходять виконувані exe. Всі наведені розширення і приховують ці самі настройки і вихідні текстові коди. Формат ASCII – проста кодування символів на клавіатурі і на екрані, кодування споконвіку відома всім, що приймається за замовчуванням на всіх платформах. Чи не потрібна ніяка спеціальна програма, щоб відкрити такі файли, ці програми за замовчуванням включаються в будь-яку систему. Більш того, все більш досконалі текстові редактори, і Word, і WordPerfect, знають цей формат, так що файли pas, css, js, cfg ви можете прочитати в будь-якій програмі.
А далі все вже на рівні «джентльменських» угод. Ось прийнято, що pas – видалити оригінальне модуля на мові програмування Паскаль, cpp – такий же текст, але вже на C ++, css – файл-таблиця стилів web-сторінки, а cfg – конфігураційний файл системи-програми.
Приклади файлів cfg – для наочності
Порядок роботи з такими файлами cfg, з точки зору розробника програмної системи, досить зрозумілий і простий, можна сказати, віддає життям.
- Система досить велика і немає необхідності, а часто це і неможливо або недалекоглядно, всі налаштування заганяти в exe-файл, робити налаштування, коли програма вже запущена, а деякі дії повинні бути доступні ще до запуску програми.
- Розробник створює зовнішній файл cfg простим Блокнотом.
- Після запуску програма спочатку зчитує цей файл конфігурації і тільки потім приймає рішення про подальшу роботу.
- Коли розробнику потрібно швидко поміняти режим роботи, він відкриває файл cfg і за кілька хвилин кардинально змінює роботу всієї програми.
Або ось інша ситуація. Коли програма розробляється, для неї створюється на локальному комп’ютері ціла середовище розробки, яка включає в себе, в тому числі, і не один файл cfg.
Але приходить час пред’являти роботу замовнику – програма пред’являється, але щось пішло не так і потрібно терміново поміняти конфігурацію. А звичного середовища щось розробки у замовника немає. Ось на допомогу і приходить Блокнот і файл cfg, в його текстовому форматі «від Блокнота» й річ. Розробник швидко запускає Блокнот на комп’ютері замовника, а без нього нікуди, робить виправлення і замовлення успішно здається.
Наводимо деякі приклади конфігураційних файлів CFG:
- Ось acad2002.cfg – це внутрішній системи AutoCAD (що для чого служить, вже «знає» сам autocad.exe, але прочитати, а можливо, здогадатися може кожен):
; Configuration for AutoCAD 2002 () Microsoft Windows
; C: \ Program Files \ AutoCAD 2002 \ acad2002.cfg created on 11/07/2015 at 0:19:51
[AppData]
[Version]
Platform = Microsoft Windows
FileVersion = 8
ExecutableDateTime = junkjunkjunkjunk
[AutoCAD]
CfgStamp = ^ EQL!, GA
AuthorizationCode = »,]»
[Digitizer / Driver]
MenuName = Current System Pointing Device
PathName = internal
Configured = 1
[Editor]
Link = 0
[Menu]
T_Menu = 0
- Ось системний файл Windows – cfgimp32.cfg (ймовірно, конфігурація шрифтів; увагу! Файл трохи скорочений). Як бачите, файл cfg – це ще й якась структура зі своїми коментарями і позначеннями:
# CGMfontconfigurationfile.
# Modifiedbyepasperjxh 4/14/94
# Commandsyntax:
# Commandarguments «font_name_string»
# Commands are:
# Index n «font_name_string»
# Match «string» «font_name_string»
# Keyword word [, word, …] «font_name_string»
# The font name string provieds an index into an internal table
# 1 – Courier New », FW_NORMAL
# 2 Courier New », FW_BOLD
# 3 Courier New », FW_NORMAL, italic
# Negative values are for Hershey font mapping.
default «9»
#keyword HERSHEY, SYMBOL, SET1 «-13»
#keyword HERSHEY, SYMBOL, SET2 «-13»
keyword HERSHEY, SYMBOL, SET1 «13» 1.0 1.0
keyword HERSHEY, SYMBOL, SET2 «13» 1.0 1.0
# Handle a few generic keywords
keyword Sans, Serif, Bold, Italic «8»
keyword Sans, Serif, Oblique «7»
# Use Times for fonts
# With no recognized type family name
keyword Bold, Italic «12»
keyword Bold, Oblique «12»
keyword Bold «10»
index 1 «5»
index 2 «7»
index 3 «6»
- Тут вже конфігурація системи програмування Borland Delphi5 (і це тільки один з безлічі файлів системи – який движок бази даних використовується і де знаходиться бібліотека):
-aWinTypes = Windows; WinProcs = Windows; DbiProcs = BDE; DbiTypes = BDE; DbiErrs = BDE
-u »C: \ Program Files \ Borland \ Delphi5 \ Lib»
Що з ними робити
На пряме запитання – який порядок редагування cfg-файлів, потрібно і пряму відповідь – жодної, і крапка! Строго кажучи, не варто ці файли взагалі чіпати, вони носять чисто службовий характер, спотворення інформації в них (а це зробити дуже легко – Блокнот-то, ось він!) Може привести до поломки не тільки однієї якоїсь прикладної програми, але і системи в цілому. Для виправлення часто потрібно перестановка системи (або програми) цілком. З іншого боку, якщо ви впевнені в своїх діях, то сміливіше, таке втручання допомагає іноді заощадити масу часу (і грошей, до речі!)
Між іншим, далеко не секрет, що таких простих редакторів «на заміну Блокнота» – дуже багато. Тому відкривати cfg-файли можна будь-який, яка подобається.
Відкриття файлу CFG в Блокноті
Маленький нюанс – перший
Ось ця ідея – зберігати в cfg-файлах конфігурацію – дуже широко прижилася. Але ж розробники часто і не хочуть, щоб вони ж стали жертвою такої доступності. Тому іноді, особливо підозрілими головами, cfg-файли шифруються і тоді вже, природно, не підходять ні для якого Блокнота. Для роботи з такими файлами потрібна вже спеціальна програма від самого розробника – тут вже точно можна сказати – не потрібно чіпати такі файли, вони вам нічого не дадуть і не покажуть.
Маленький нюанс – вже другий, і останній
А ось ще, все з тієї ж опери. Компанія iWinInc. – відомий розробник відеоігор, під її «початком» серія JewelQuest, CoconutQueen – теж прийняла цю ідею зовнішніх конфігураційних файлів. Всю інформацію про поточний хід гри, рахунку, гравцях вона зберігає в файлах cfge – так, додала до відомим трьом буквах ще й четверту e (ймовірно, extension – розширений). Що поробиш, виявляється, творчість можна проявляти і на «сірникових головках». Так, цим формат cfg і живе!