![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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=текст итп... А все проблемы заключались в том, что секция начиналась с заглавной буквы, поэтому не читалось )
|