Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Хочешь написать торгового робота? Загляни в Справочник MQL5!
MetaQuotes Software Corp.
Модератор
180326
MetaQuotes Software Corp. 2007.06.12 15:57 

Библиотека функций для работы с INI-файлами.:

Библиотека содержит пять функций, предназначенных для чтения значений из INI-файла и пять функций для записи значений в INI-файл. Таким образом, получается пять пар функций для чтения/записи значений типа array of integer, bool, double, integer и string.

Author: Igor Kim

zebra
267
zebra 2007.02.23 15:49  

Объясните, пожалуйста, что такое INI-файл?

Спасибо.

Igor Kim
2740
Igor Kim 2007.02.23 17:39  
Zebra:

Объясните, пожалуйста, что такое INI-файл?

INI-файлы обычно применяются для сохранения параметров, которые используются при работе программы. Например, положение и размеры главного окна программы на экране монитора. Любой INI-файл - это текстовый файл и он имеет следующую структуру:
[Наименование секции 1]
Наименование параметра 1=Значение параметра 1
Наименование параметра 2=Значение параметра 2
............
Наименование параметра N=Значение параметра N
[Наименование секции 2]
Наименование параметра 1=Значение параметра 1
Наименование параметра 2=Значение параметра 2
............
Наименование параметра M=Значение параметра M
............
............
[Наименование секции K]
Наименование параметра 1=Значение параметра 1
Наименование параметра 2=Значение параметра 2
............
Наименование параметра P=Значение параметра P
Mike
282
Mike 2007.06.12 11:54  

Спасибо за работу. Только забыли добавить в код:

#property library
Igor Kim
2740
Igor Kim 2007.06.12 12:44  
Mike писал(а):

Спасибо за работу. Только забыли добавить в код:

#property library
Благодарю за поправку... Добавил... Появится после редакторского одобрения...
Alexey Klenov
1871
Alexey Klenov 2008.04.14 07:59  

Есть вопрос такой

функция ReadIniString() не читает (точнее читает какую то аброкадабру) если значение ключа больше 255 символов 

пробовал увеличить буфер в Вашей библиотеке с 255 на 1024 но результата не дало

вот в этом месте

string ReadIniString(string FileName, string SectionName, string KeyName, 
                    
string Default = "")
  {
   string ReturnedString = "";
  
int nValue = GetPrivateProfileStringA(SectionName, KeyName, Default,
                                          
ReturnedString, 255, FileName);
  
if(nValue > 0)
       return(ReturnedString);
  
else
       return(Default);
  
}

на

string ReadIniString(string FileName, string SectionName, string KeyName, 
                    
string Default = "")
  {
   string ReturnedString = "";
  
int nValue = GetPrivateProfileStringA(SectionName, KeyName, Default,
                                          
ReturnedString, 1024, FileName);
  
if(nValue > 0)
       return(ReturnedString);
  
else
       return(Default);
  
}
Igor Kim
2740
Igor Kim 2008.04.16 15:43  
olyakish писал(а):
функция ReadIniString() не читает (точнее читает какую то аброкадабру) если значение ключа больше 255 символов 
Второй абзац Строковые константы
Alexey Klenov
1871
Alexey Klenov 2008.04.16 21:37  
KimIV:
olyakish писал(а):
функция ReadIniString() не читает (точнее читает какую то аброкадабру) если значение ключа больше 255 символов 
Второй абзац Строковые константы

Ага, а вот так значит можно это обойти

string testStr="qwertyuiop[]asdfghjkl;zxcvbnm,.1234567890-=!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?";
string strTest;
int start()
  {
   strTest=StringConcatenate(testStr,testStr,testStr,testStr,testStr,testStr,testStr,testStr,testStr,testStr);
  
Print(strTest);
  
Print(StringLen(strTest));
  
return(0);
  
}

Из журнала

23:24:05 Compiling 'test_string'
23:24:05 test_string EURGBP,M1: loaded successfully
23:24:05 test_string EURGBP,M1: qwertyuiop[]asdfghjkl;zxcvbnm,.1234567890-=!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?qwertyuiop[]asdfghjkl;zxcvbnm,.1234567890-=!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?qwertyuiop[]asdfghjkl;zxcvbnm,.1234567890-=!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?qwertyuiop[]asdfghjkl;zxcvbnm,.1234567890-=!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?qwertyuiop[]asdfghjkl;zxcvbnm,.1234567890-=!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?qwertyuiop[]asdfghjkl;zxcvbnm,.1234567890-=!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?qwertyuiop[]asdfghjkl;zxcvbnm,.1234567890-=!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?qwertyuiop[]asdfghjkl;zxcvbnm,.1234567890-=!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?qwertyuiop[]asdfghjkl;zxcvbnm,.1234567890-=!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?qwertyuiop[]asdfghjkl;zxcvbnm,.1234567890-=!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?
23:24:05 test_string EURGBP,M1: 870
23:24:05 test_string EURGBP,M1: uninit reason 0
23:24:05 test_string EURGBP,M1: removed

тоесть изначально иницииоровать такую нельзя а вот собрать получается можно

причем ее (собранную строку) записываю целиком в ини без обрезаний

Сергей
534
Сергей 2008.11.15 18:33  

А как можно удалить секцию?

Или определенный параметр из секции?

Viktor Vasilyuk
556
Viktor Vasilyuk 2010.04.14 12:10  

а где библиотека?
киньте если не трудно на
progma137@gmail.com

MQL4 Comments
16319
MQL4 Comments 2010.07.03 17:05  
А где библиотека?
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий