Общее правило именования файла (папки)
Какие правила записи имени файла следует соблюдать, чтобы файл всегда был доступен, открывался нужным приложением и в случае непредвиденных обстоятельств его можно было восстановить или сделать резервную копию? В имени не должно быть никаких специальных, а тем более невидимых знаков. К специальным относится всё, что находится за пределами:
», как правило, не вызывает затруднений, но это следует делать с осторожностью, поскольку многие приложения критичны к этим символам и могут просто не открыть файл. Обычно этими знаками манипулируют только профессионалы
Невидимых символов не меньше, чем видимых, далеко не все приложения позволяют пользователю их использовать, но на практике возможно многое, что не может предусмотреть программист в своей программе.
Невидимым может стать символ при смене кодировки. Большинство приложений отобразит такую ситуацию кракозябрами или более эстетично знаками «?». В обоих случаях файл не будет открыт и доступен.
Другие программы, связанные с расширением INI
- Файл конфигураций Symbian OSФайл конфигурации, который хранит параметры и настройки пользователя для операционной системы Symbian и установленных приложений, похож на INI-файлы, используемые в Windows, и как правило, не должны быть открыты вручную. Относится к разделу Конфигурационные файлы.
ПРИМЕЧАНИЕ: Файлы Symbian INI можно редактировать с помощью текстового редактора, чтобы изменить определенные настройки. Тем не менее, изменения в INI файле могут привести к тому, что операционная система или другие программы не будут функционировать правильно. Поэтому, не забудьте сделать резервную копию файла и править файл только если вы точно знаете, что добавить или изменить.
Популярность:
- Установочный файл Gravis UltraSound BankСодержит настройки для Gravis UltraSound Bank (.FFF файл), а также файлы обновлений, используемых в аудио картах Gravis. Относится к разделу Конфигурационные файлы.
Популярность:
- Файл с информацией об альбоме в Google Picasa от Google Inc.Расширение INI файла также используется в Google Picasa, которая используется для организации и редактирования цифровых фотографий. *.Ini-файл, используемый в Google Picasa содержит сведения об альбоме. Для версии Picasa для Windows 71.18 и выше, *.ini файлы называются *.picasa.ini. Относится к разделу Другие файлы.
Популярность:
- Простой файл c информацией об обменном курсеРасширение файла INI также используется для файлов c информацией об обменном курсе в формате SERIFF. SERIFF является текстовым форматом для представления курсов валют. Полное описание формата SERIFF можно найти на официальном сайте. Относится к разделу Конфигурационные файлы.
Популярность:
ini-файл (англ. Initialization file ) — это файл конфигурации, который содержит данные настроек для Microsoft Windows, Windows NT и некоторых приложений.
Появились с самых первых версий Windows. В версии Windows 1.01 это был только файл WIN.INI. В Windows 3.0 добавился файл SYSTEM.INI. А затем их количество начало расти быстро и бесконтрольно.
Не существует подробной официальной спецификации формата. Начиная с Windows 95, INI файлы считаются устаревшими и в качестве замены им Microsoft предлагает использовать системный реестр (Registry). Тем не менее INI файлы продолжают использоваться как приложениями других производителей, так и компонентами ОС от Microsoft. Например, файл boot.ini используется в Windows NT4/2000/XP при загрузке для выбора из нескольких ОС.
Хотя INI файлы и приобрели популярность в Windows, они могут использоваться в любой ОС. Несложная структура этого формата позволяет легко обрабатывать их программно и имеет достаточно понятный вид для чтения и изменения человеком. Существуют текстовые редакторы (например, SciTE или Notepad++), которые используют подсветку синтаксиса и фолдинг для этого формата, что облегчает редактирование INI файлов вручную.
Использование секций для разделения параметров способствует систематизации данных, однако для хранения настроек большого объёма с более сложной иерархической структурой лучше подходит формат XML или JSON.
Какие правила записи имени файла следует соблюдать: основные требования
В работе на компьютере пользователь должен придерживаться определенных правил
Именование файлов и выбор места их хранения имеют важное значение
Пользователи всегда делились на две категории: просто пользователи и программисты (разработчики). В далеком прошлом именование используемых объектов было строго фиксированным, а большинство операционных систем и приложений следили за действиями пользователя. В настоящее время, в эпоху всеобщей «интеллектуализации» приложений, облачных решений и нетипированных данных стало доступным многое, но следует далеко не всем пользоваться.
Формат файла [ править | править код ]
ini-файлы — это обычные текстовые файлы, которые можно редактировать и просматривать при помощи любого текстового редактора. ini-файлы имеют следующий формат:
INI файл может содержать:
- пустые строки;
- комментарии — от символа «;» (точка с запятой), стоящего в начале строки, до конца строки;
- заголовки разделов — строки, состоящие из названия раздела, заключённого в квадратные скобки «»;
- значения параметров — строки вида «ключ=значение».
Соглашения
Не существует общепринятого стандарта формата файлов INI. Хотя общая структура таких файлов обычно сохраняется, многие программные продукты вводят в неё дополнительные возможности или, наоборот, ограничения.
- Комментарии. Некоторые приложения (например, Samba) считают символом начала комментария как «;», так и «#».
-
Обратный слэш. Иногда допускается использование обратного слэша «» для объявления следующей строки продолжением этой. В таком случае они будут обработаны как одна целая строка. Иногда возможно также применять «» для ввода спецсимволов, например, ‘
‘ для обозначения переноса строки. - Одинаковые параметры. В большинстве случаев наличие двух одинаковых ключей в одной секции запрещено (при этом в Windows обрабатывается только первый, а во многих других реализациях — последний ключ).
- Одинаковые имена секций. Обычно при наличии нескольких секций с одинаковыми именами в файле обрабатывается лишь первая (в реализации Windows) или последняя из них. Некоторые приложения объединяют содержимое всех таких секций в одну.
- Кавычки. Если значение взято в двойные или одинарные кавычки, функция чтения файлов INI в Windows убирает их. Убирается только внешняя пара кавычек. При этом функция записи в INI игнорирует эту особенность.
Сегодня совсем случайно я вспомнил про существование ini-файлов и решил применить их для упрощения процесса программирования. Сначала пару слов о ini-файлах. Что это такое? Это обыкновенный текстовый файл, который служит хранилищем для различных конфигураций. Такие файлы имеют определенную структуру, вот такого вида:
Для чего нужны ini-файлы? В них можно хранить любую информацию, которую приходится часто менять или доступ к которой должен быть простым. Например, это может быть настройки для подключения к база данных. В php можно быстро и просто получить значение параметра из ini-файла. Сделать это можно следующим образом:
Помимо настроек для базы данных в ini-файлах можно хранить абсолютно любые данные, можно даже сделать многоязычность на сайте. Для этого нужно просто сделать два конфига — один с русскими, а другой с английскими названиями кнопок, разделов и тд.
Как избавиться от файлов desktop.ini? Могу ли я удалить их?
Удаление файлов desktop.ini не рекомендуется, даже если это не вредно. Поскольку их единственная роль — хранить некоторые параметры визуальной настройки, их удаление не повредит вашей установке Windows. Единственным последствием этого действия является то, что их папка теряет свой внешний вид при отображении в Windows, но вы можете еще раз настроить ее, и снова появится desktop.ini. Если вы не хотите, чтобы файлы Desktop.ini находились где-либо на вашем компьютере, лучше всего скрыть системные файлы, защищенные Windows. Для этого откройте окно «Параметры проводника». Наиболее удобный способ — использовать поле поиска на панели задач, чтобы ввести ключевые слова «параметры папки» и нажать «Параметры проводника». Затем перейдите на вкладку «Вид», где можно включить «Скрыть защищенные системой файлы (рекомендуется)» или выберите «Не показывать скрытые файлы, папки или диски»в разделе «Дополнительные настройки». Когда закончите, нажмите OK.
Файлы desktop.ini теперь скрыты от глаз и больше не беспокоят вас.
LOADING IN-MEMORY .INI FILES
You can create an empty .INI file object by using the new operator ; however, if you have existing contents to be loaded, use one of these three static functions. It will create a IniFile object, load the contents you specified, and return a reference to the object :
Each of these functions accept a parameter, $separator, which is the character to be used for separating key/value pairs.
The LoadFromFile method is used to load .ini file contents from the specified $file. The $load_option parameter can be one of the following :
- IniFile::LOAD_ANY : The specified file is loaded. It will be created if it does not exist
- IniFile::LOAD_NEW : The specified file will be created empty, and will be overridden if it already exists.
- IniFile::LOAD_EXISTING : The specified file will be loaded. An exception will be thrown if it does not exist.
The LoadFromString method is used to load .ini file contents directly from a string.
LoadFromArray can be used for loading .ini file contents from an array of lines.
использование файла qt ini
http-equiv=»Content-Type» content=»text/html;charset=UTF-8″>yle=»margin-bottom:5px;»>Теги: ini файл qt ini
Файлы конфигурации Qt обычно используют файлы ini, здесь я запишу их использование.
Введение в состав ini:
Файл INI состоит из разделов, ключей и значений. Чтобы
Раздел
Параметры (ключ = значение) имя = значение
Ниже приведен пример файла ini.
KeyName1=value1
KeyName2=value2
KeyName2=value2
KeyName2=value2
Как в следующем коде: fileSetting->setValue(«/fileSave/savePath»,filePath);
Фестиваль:fileSave ключ: savePath Стоимость:filePath
Инструкции по использованию:
1. Добавьте файл INI_File.cpp, наследовать не нужно
2. Добавьте файлы заголовков.
3. Создайте ini файл
3. Прочтите и сохраните
Вызов процедуры:
Интеллектуальная рекомендация
Character level language model — Dinosaurus land Основываясь на собранных именах существующих динозавров, создайте модель языка уровня персонажа, чтобы назвать новых динозавров By completing this assi…
1. Что такое FMDB? В iOS использование функций языка C для добавления, удаления, изменения и запроса собственных баз данных SQLite является сложным и хлопотным, поэтому появился ряд библиотек, инкапсу…
Ссылка на заголовок Этот вопрос представляет собой простое приложение параллельного поиска, которое не сложно. (Не потребовалось много времени, чтобы увидеть, что Accepted чувствует себя так хорошо, х…
Несколько лет назад, когда поставщик системы при условии, что третья сторона или братий, большинство решений представили общий исходный код SDK. Так называемый SDK исходный код является не более, чем …
Вам также может понравиться
Алмазное наследство C ++ поддерживает множественное наследование, поэтому может появиться алмазное наследование. Алмазное наследование означает, что производный класс B и производный класс C наследуют…
GAN and CGAN О GAN и CGan Tutorial Online есть много онлайн, заинтересованы, вы можете оказаться. Самое главное, чтобы выяснить, что такое GAN? Автор в бумагах иNIPS2016 tutorialЯ провел много оригина…
…
ISA2006 выпустил сервер Exchange RPC OVER HTTPS Экспериментальная топология Компьютерыwindows sp1<?xml:namespace prefix = o ns = «urn:schemas-microsoft-com:office:office» /> Ком…
1. Структура модели резервуара для воды Во-вторых, код 3. Результаты моделирования может выводить сравнительную таблицу между смоделированной последовательностью стока и измеренной последовательностью…
Формат
Ключи (свойства)
Основной элемент, содержащийся в ini файл — «ключ» или «значение». Каждый ключ имеет имя и значение, разделенные на знак равенства (). Имя отображается слева от знака равенства.
name=value
Sections
Ключи могут (но не обязательно) быть сгруппированы в произвольно названные «разделы». Название раздела отображается на отдельной строке в квадратных скобках ( и ). Все ключи после объявления раздела связаны с этим разделом. Нет явного «конца раздела»; разделы заканчиваются в следующей декларации раздела или в конце файла. Разделы не могут быть вложенными.
a=a b=b
Комментарии
Точка с запятой () в начале строки означают комментарий. Строки комментариев игнорируются.
; комментарий
Различные особенности
Формат файла INI не достаточно определенный. Многие программы поддерживают функции, выходящие за рамки описанных выше основ. Ниже приведен список некоторых общих функций, которые могут или не могут быть реализованы в любой заданной программе
Пустые строки
Некоторые устаревшие программы не позволяют иметь пустые строки. Поэтому каждая строка должна быть заголовком раздела, свойством или комментарием.
Комментарии
Некоторые программы поддерживают использование знака () в качестве альтернативы точки с запятой для указания комментариев. Практически говоря, использование его для начала строки может эффективно изменить имя переменной в этой строке. Например, следующая строка создает переменную с именем «#var», но не с именем «var»; Это иногда используется для создания псевдореализации комментария.
#var=a
В более общем плане использование знака числа непредсказуемо, как в следующих строках (обратите внимание на пробел после знака числа во второй строке). По этой причине знак «#» не следует использовать для запуска комментариев.
# # var=a
В некоторых реализациях, комментарий может начинаться в любом месте на линии, в том числе на той же строке после свойства или объявления. В другие, в том числе по WinAPI функция , комментариев должна происходить на отдельной линии .
Повторяющиеся имена
Большинство реализаций поддерживают только одно свойство с заданным именем в разделе. Второе вхождение имени свойства может вызвать прерывание, оно может быть проигнорировано (и значение сброшено), или оно может переопределить первый вариант (с отброшенным первым значением). Некоторые программы используют повторяющиеся имена свойств для реализации многозначных свойств.
Интерпретация объявлений с несколькими разделами с одинаковым именем также различается. В некоторых реализациях дублированные разделы просто объединяют свои свойства вместе, как если бы они происходили соприкасаясь. Другие могут прервать или игнорировать некоторые аспекты INI-файла.
Глобальные свойства
Необязательные «глобальные» свойства также могут быть разрешены, которые объявляются перед объявлением любого раздела.
Наименование/значение разделителя
Некоторые реализации допускают использование двоеточия () в качестве разделителя имени / значения (вместо знака равенства).
Пробелы
Интерпретация пробелов различна. Большинство реализаций игнорируют начальные и конечные пробелы вокруг имени свойства. Некоторые даже игнорируют пробелы в значениях (например, эквивалент имен «host name» и «hostname»). В некоторых реализациях также игнорируются начальные и конечные пробелы вокруг значения свойства; Другие считают, что все символы, следующие за знаком равенства (включая пробелы), являются частью значения.
В большинстве случаев порядок свойств в разделе и порядок секций в файле значения не имеет, но реализации могут отличаться.
Технические детали [ править | править код ]
Сигнатура
Первые 2 байта PE-файла содержат сигнатуру 0x4D 0x5A — «MZ» (как наследник MZ-формата). Далее – двойное слово по смещению 0x3C содержит адрес PE-заголовка. Последний начинается с сигнатуры 0x50 0x45 — «PE».
Структура
Файл PE состоит из нескольких заголовков и секций, которые указывают динамическому компоновщику, как отображать файл в память. Исполняемый образ состоит из нескольких различных областей (секций), каждая из которых требует различных прав доступа к памяти; таким образом, начало каждой секции должно быть выровнено по границе страницы. Например, обычно секция .text, которая содержит код программы, отображена как исполняемая/доступная только для чтения, а секция .data, содержащая глобальные переменные, отображена как неисполняемая/доступная для чтения и записи. Однако, чтобы не тратить впустую пространство на жёстком диске, различные секции на нём на границу страницы не выровнены. Часть работы динамического компоновщика состоит в том, чтобы отобразить каждую секцию в память отдельно и присвоить корректные права доступа получившимся областям согласно указаниям, содержащимся в заголовках.
Таблица импорта
Одна из известных секций — таблица адресов импорта (IAT — Import Address Table), которая используется в качестве таблицы поиска, когда приложение вызывает функцию из другого модуля. Это может быть сделано и в форме импорта по порядковому номеру функции (ordinal), и импорта по её имени. Поскольку скомпилированной программе неизвестно расположение библиотек, от которых она зависит, то требуется производить косвенный переход всякий раз, когда происходит вызов API-функции. Когда динамический компоновщик загружает модули и объединяет их, он записывает действительные адреса в область IAT так, чтобы они указали на ячейки памяти соответствующих библиотечных функций. Хотя это добавляет дополнительный переход внутри модуля, приводящий к потере производительности, это предоставляет ключевое преимущество: количество страниц памяти, которые должны быть скопированы загрузчиком при записи, минимизировано, что приводит к экономии памяти и дискового времени ввода-вывода. Если компилятору будет известно заранее, что вызов будет межмодульным (через атрибут dllimport), то он сможет произвести более оптимизированный код, который просто приводит к коду операции косвенного вызова.
Таблица экспорта
Таблица адресов экспорта (EAT — Export Address Table) нужна для того, чтобы один модуль (обычно это динамически загружаемая библиотека) мог указать другим модулям, какие функции они могут из него импортировать, и по каким адресам последние расположены.
Таблица перемещений
Файлы PE не содержат позиционно-независимого кода. Вместо этого они скомпилированы для предпочтительного базового адреса, и все адреса, генерируемые компилятором/компоновщиком, заранее фиксированы. Если PE-файл не может быть загружен по своему предпочтительному адресу (потому что он уже занят чем-то ещё), операционная система будет перебазировать его. Это включает в себя перевычисление каждого абсолютного адреса и изменение кода для того, чтобы использовать новые значения. Загрузчик делает это, сравнивая предпочтительный и фактический адреса загрузки, и вычисляя значение разности. Тогда для получения нового адреса ячейки памяти эта разность складывается с предпочтительным адресом. Базовые адреса перемещений хранятся в списке и при необходимости добавляются к существующей ячейке памяти. Полученный код является теперь отдельным по отношению к процессу и не является больше разделяемым, так что при таком способе теряются многие из преимуществ экономии памяти динамически загружаемых библиотек. Такой способ также значительно замедляет загрузку модуля. По этой причине следует избегать перебазирования везде, где это возможно; например, библиотеки, поставляемые Microsoft, имеют предварительно вычисленные неперекрывающиеся базовые адреса. В случае отсутствия необходимости перебазировании PE-файлы имеют преимущество очень эффективного кода, но при наличии перебазирования издержки в использовании памяти могут быть значительными. Это отличает формат PE от ELF, который использует полностью позиционно-независимый код и глобальную таблицу смещений, которая жертвует временем выполнения в пользу расходования памяти.
.NET, метаданные и PE-формат [ править | править код ]
Платформа .NET корпорации Microsoft расширила формат PE с помощью функций, которые поддерживают общеязыковую среду исполнения (Common Language Runtime — CLR). Среди дополнений — заголовок CLR и секция данных CLR. После загрузки двоичного файла загрузчик ОС приводит к выполнению CLR через ссылку в таблице импорта PE/COFF. Затем CLR загружает заголовок CLR и секции данных.
Секция данных CLR содержит два важных сегмента: сегмент метаданных и сегмент кода промежуточного языка (IL):
- Метаданные содержат информацию, относящуюся к сборке, включая манифест сборки. Манифест подробно описывает сборку, включая уникальный идентификатор (с помощью хеша, номера версии и т. д.), данные об экспортируемых компонентах, расширенную информацию о типе (поддерживаемую общей системой типов (Common Type System — CTS)), внешние ссылки и список файлов в сборке. Среда CLR широко использует метаданные.
- Код промежуточного языка (Intermediate Language — IL) — абстрактный, независимый от языка код, который удовлетворяет требованиям общего промежуточного языка (Common Intermediate Language — CIL) .NET CLR. Термин «промежуточный» относится к природе кода IL, обладающего межъязыковой и кроссплатформенной совместимостью. Этот промежуточный язык, подобный байт-кодуJava, позволяет платформам и языкам поддерживать общую среду .NET CLR. IL поддерживает объектно-ориентированное программирование (полиморфизм, наследование, абстрактные типы и т. д.), исключения, события и различные структуры данных.
Структура файлов [ править | править код ]
Файл EXE, создаваемый компоновщиком, состоит из двух частей:
- управляющая информация для загрузчика;
- загрузочный модуль.
Информация для загрузчика, описанная ниже, расположена в начале файла и образует так называемый заголовок. Сразу за ним следует тело загрузочного модуля, представляющее собой копию образа памяти задачи, построенной компоновщиком.
Стандартная часть заголовка имеет следующий формат :
00-01 4D5A — сигнатура файла .EXE; 02-03 Длина образа задачи по модулю 512 (то есть число полезных байт в последнем блоке). Компоновщики версий до 1.10 помещали в это поле 04; если оно имеет такое значение, его рекомендуется игнорировать); 04-05 Длина файла в блоках; 06-07 Число элементов таблицы настройки адресов; 08-09 Длина заголовка в 16-байтных параграфах. Используется для выяснения начала тела загрузочного модуля; 0A-0B Минимальный объём памяти, которую нужно выделить после конца образа задачи (в 16-байтных параграфах); 0C-0D Максимальный объём памяти, которую нужно выделить после конца образа задачи (в 16-байтных параграфах); 0E-0F Сегментный адрес начала стекового сегмента относительно начала образа задачи; 10-11 Значение SP при входе в задачу; 12-13 Контрольная сумма — ноль минус результат сложения без переноса всех слов файла; 14-15 Значение IP (счетчика команд) при входе в задачу; 16-17 Сегментный адрес начала кодового сегмента относительно начала образа задачи; 18-19 Адрес первого элемента таблицы настройки адресов относительно начала файла; 1A-1B Номер сегмента перекрытий (0 для корневого сегмента программы).
Далее следует таблица настройки адресов. Таблица состоит из элементов, число которых записано в байтах 06-07. Элемент таблицы настройки состоит из двух полей: 2-байтного смещения и 2-байтного сегмента, и указывает слова в загрузочном модуле, содержащее адрес, который должен быть настроен на место памяти, в которое загружается задача. Настройка производится следующим образом:
- В области памяти после резидентной части выполняющей загрузку программы строится префикс программного сегмента (PSP);
- Стандартная часть заголовка считывается в память;
- Определяется длина тела загрузочного модуля (разность длины файла 04-07 и длины заголовка 08-09 плюс число байт в последнем блоке 02-03). В зависимости от признака, указывающего загружать задачу в конец памяти или в начало, определяется сегментный адрес для загрузки. Этот сегмент называется начальным сегментом;
- Загрузочный модуль считывается в начальный сегмент;
- Таблица настройки порциями считывается в рабочую память;
- Для каждого элемента таблицы настройки к полю сегмента прибавляется сегментный адрес начального сегмента. В результате элемент таблицы указывает на слово в памяти, к которому прибавляется сегментный адрес начального сегмента;
- Когда таблица настройки адресов обработана, в регистры SS и SP записываются значения, указанные в заголовке, а к SS прибавляется сегментный адрес начального сегмента. В ES и DS записывается сегментный адрес начала PSP. Управление передается по адресу, указанному в заголовке (байты 14-17).
boot.ini
Сам boot.ini находится в корне системного диска, обычно это диск C:/. Чтобы увидеть файл, для начала необходимо сделать видимым “скрытые файлы и папки“ и “скрытые системные файлы и папки“.
Для этого в пункте сервис, выбираем “свойства папки — вид“.Там мы снимаем галочки с указанных выше параметров. Должно получится так.
После этого на системном диске будут видны различные системные файлы, с помощью которых грузится система. Один из них будет boot.ini. Кстати в случае если система загружается с ошибкой, то выручит восстановление системных файлов.
Откройте его и вы увидите примерно такую структуру
timeout=30
default=multi (0) disk (0) rdisk (0) partition (1)WINDOWS
multi (0) disk (0) rdisk (0) partition (1)WINDOWS=”Microsoft Windows XP Professional RU” /noexecute=optin /fastdetect
Эта структура с одной установленной операционной системой на первом физическом диске. Пробежимся по каждому пункту отдельно.
timeout=30– время в течении которого будет отображаться список операционных систем, значение задается в секундах. Советую поставить значение timeout=10.default– Система, которая будет загружаться по умолчанию, по истечению timeout.
Rdisk (0) – номер физического диска. Т.е. (0) – это первый жесткий диск, (1) – это второй. В данном случае система находится на первом диске.
partition (1)– номер физического раздела. В данном случае физический диск, разбит на разделы: (1) – это диск C, (2) – это диск D, (3) – это диск E и т.д.
Microsoft Windows XP Professional RU– название О.С., которые вы будете видеть при выборе О.С. Можно менять на любое читабельное значение, на саму загрузку запись влияния не имеет.
Это основные значения, которые необходимо знать, чтобы выполнить настройку загрузки Windows самостоятельно.