Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.05.2010, 13:54
dis12 dis12 вне форума
Прохожий
 
Регистрация: 15.05.2010
Сообщения: 2
Репутация: 10
По умолчанию ini (опять он :) ) и tmemo

приветствую всех.. .собственно, такая проблема, нужно из файла *.ini достать нужную информацию, некоторые моменты не получаются, сейчас поясню какие.

содержимое файла *.ini выглядет таким образом:
Цитата:
[Понедельник]
текст
[Вторник]
текст2
...
[Воскресенье]
текст7

на форме в приложении раскиданы 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  
Старый 20.05.2010, 23:40
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Метод 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  
Старый 25.05.2010, 13:27
dis12 dis12 вне форума
Прохожий
 
Регистрация: 15.05.2010
Сообщения: 2
Репутация: 10
По умолчанию

спасибо, там на самом деле в инифайле в каждой секции прописывалось 1=текст, 2=текст итп... А все проблемы заключались в том, что секция начиналась с заглавной буквы, поэтому не читалось )
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:56.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025