![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() приветствую всех.. .собственно, такая проблема, нужно из файла *.ini достать нужную информацию, некоторые моменты не получаются, сейчас поясню какие.
содержимое файла *.ini выглядет таким образом: Цитата:
на форме в приложении раскиданы Memo1 (Отвечает за сегодня) и Memo2(отвечает за завтра). Нужно, чтобы в Memo1 из файла *.ini читались данные из секции, соответствующей сегодняшнему дню, а в Memo2, соответственно, завтрашнему. Делаю так: Код:
uses IniFiles, DateUtils; procedure TForm1.FormCreate(Sender: TObject); var ini: TIniFile; n: integer; Str: TStringList; tod,tomm: String; begin ini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'stable.lst'); tod := FormatDateTime('dddd',Date); tomm := FormatDateTime('dddd',Tomorrow); Memo1.Clear; Memo2.Clear; Str := TStringList.Create; ini.ReadSectionValues(tod,str); for n:=0 to str.Count do Memo1.Lines.Add(ini.ReadString(tod,inttostr(n),'')); ini.ReadSectionValues(tomm,str); for n:=0 to str.Count do Memo2.Lines.Add(ini.ReadString(tomm,inttostr(n),'')); str.Free; ini.Free; end; в моем случае отображается только данные из секции, соответствующей сегодняшнему дню (для Memo1), а в Memo2 ничего не отображается.. Подскажите, пожалуйста, что подправить.. буду очень признателен |
#2
|
|||
|
|||
![]() Метод ReadString ориентирован на чтение значения заданного ПАРАМЕТРА из заданной секции.
В Вашем случае : Код:
[Понедельник] текст [Вторник] текст2 ... [Воскресенье] Т.е., не выдержана структура INI-файла. Должно быть что-то вроде этого : Код:
[Понедельник] Парам1=текст [Вторник] Парам2=текст2 ... [Воскресенье] Но можно попробовать воспользоваться методом ReadSection. Что-то вроде этого : Код:
procedure INI_ReadSection(NameINI,NameSection : string;List : TStrings); begin if List<>NIL then begin List.Clear; with TIniFile.Create(NameINI) do begin TRY ReadSection(NameSection,List); FINALLY Free; END; end; end; end; Может быть этот метод прочитает всю секцию без четкого выделения параметров. Я, правда, не пробовал ... |
#3
|
|||
|
|||
![]() спасибо, там на самом деле в инифайле в каждой секции прописывалось 1=текст, 2=текст итп... А все проблемы заключались в том, что секция начиналась с заглавной буквы, поэтому не читалось )
|