Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ini

343
22 августа 2007 года
lena_ki
282 / / 14.04.2005
Допусти ini выглядит так:
[Voice:1]
0=1
1=2
[Voice:2]
0=1
1=2
2=3
[Voice:3]
0=1
1=2
и т.д.
Программа удалила секцию номер 2. Ini стал выглядить так:
[Voice:1]
0=1
1=2
[Voice:3]
0=1
1=2
Как пробежаться по ini и поменять цифры в секции, чтобы стало по порядку:
[Voice:1]
0=1
1=2
[Voice:2] //тут поменялась цифра, теперь правильно
0=1
1=2
92
22 августа 2007 года
Тень Пса
2.2K / / 19.10.2006
делаешь ReadSections в TStrings (sectionsOrdered), меняешь имена секций (по порядку).
потом делаешь ReadSections снова в TStrings (sectionsCurrent) и копируешь все данные из каждой секции (по индексу) в секцию под именем из sectionsOrdered с тем же индексом (всё это в новый файл можно, а потом файл подменить)...

первое что пришло в голову.
343
22 августа 2007 года
lena_ki
282 / / 14.04.2005
Вот подсказали такое решение:
Код:
void __fastcall renameSections( AnsiString aIniName, AnsiString aPrefix, int aFirstIndex ){
    // Весь файл целиком
   std::auto_ptr<TStringList> file( new TStringList() );
    // Читаем файл
   file->LoadFromFile( aIniName );
    // Переименовываем секции
   for( int i = 0; i < file->Count; i++ ){
      AnsiString line = file->Strings.Trim();
      if( !line.IsEmpty() && line[1] == '[' && line[line.Length()] == ']' ){
          // Найдено очередное имя секции, переименовываем
         file->Strings = "[" + aPrefix + IntToStr( aFirstIndex++ ) + "]";
      }
   }
    // Сохраняем файл
   file->SaveToFile( aIniName );
}


renameSections( [COLOR=darkblue]"file.ini"[/COLOR], [COLOR=darkblue]"Voice:"[/COLOR], [COLOR=blue]1[/COLOR] );
92
22 августа 2007 года
Тень Пса
2.2K / / 19.10.2006
только там ошибочка - надо в line[line.Length()] -1 добавить )
343
22 августа 2007 года
lena_ki
282 / / 14.04.2005
Вроде нормально работает. Точно надо минус один?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог