Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.08;
Скачать: CL | DM;

Вниз

Чтение значений из ini файла   Найти похожие ветки 

 
ходячий вопросник   (2001-12-15 08:50) [0]

Доброе время суток...

ReadSectionValues: он читает значения ключей в секциях, или значения ключей в секциях вместе с ключами?

Если второе то как сотворить первое?...

Спасибо.


 
Anatoly Podgoretsky   (2001-12-15 11:59) [1]

есть стоячий вопросник, хелп называется, ходить не пробовал, сходи очень помогает.


 
ходячий вопросник   (2001-12-15 12:18) [2]

Толя, миленький, шибко умным себя считаете?!

1. Мож я не так вопрос задал... Перезадам: Что именно читает ReadSectionValues???

2. Выдержка из хелпа:

Reads the values from all keys within a section of an INI file into a string list.

procedure ReadSectionValues(const Section: string; Strings: TStrings); override;

Поясняю: Читает значения ВСЕХ КЛЮЧЕЙ в секции из файла типа INI в String List.

Так вот мне считывает значения С ключами, а мне надо БЕЗ ключей.


 
evgeg   (2001-12-15 12:24) [3]

А попробовать и посмотреть, что получится, слабо?


 
ходячий вопросник   (2001-12-15 12:32) [4]

evgeg в каком смысле?
Третий день пробую...


 
ходячий вопросник   (2001-12-15 14:41) [5]

Мастера!

Чего на такой вопрос ответить не можете?


 
Eduard   (2001-12-15 14:42) [6]

А я вот за 3 минуты попробовал, и сделал вывод, что ReadSectionValues читает значения вместе с ключами :)


 
ходячий вопросник   (2001-12-15 14:46) [7]

Eduard,что С КЛЮЧАМИ -говорю - третий день бьюсь, а БЕЗ КЛЮЧЕЙ???


 
ходячий вопросник   (2001-12-15 14:47) [8]

Просто глянь в мое цитирование HELP"a: там же черным по белому (в HELP"e) написано: значения ключей, а не строки секций???

Может другая функция есть?


 
Anatoly Podgoretsky   (2001-12-15 15:10) [9]

TStrings help (F1 ведь советовал же)
Names, Values

"Толя, миленький, шибко умным себя считаете?!" это потому что помню волшебную кнопку F1


 
ходячий вопросник   (2001-12-15 15:14) [10]

Анатолий, так получается, что я эту волшебную кнопку не помню?!
Функцию я где по-ващему вытащил?
Наверняка перлопатил пол-хелпа!


 
Anatoly Podgoretsky   (2001-12-15 15:43) [11]

Значит очень плохо смотрел, достаточно одной табулетки


 
evgeg   (2001-12-15 15:49) [12]

Applies to

TIniFile object

Declaration

procedure ReadSectionValues(const Section: string; Strings: TStrings);

Description

The ReadSectionValues method reads all the variables and their values of an entire section of an .INI file into a string object. You can then use the Values property of string and string list objects to access a specific string in the list of strings.

Это выдержка из help-а для Дельфи 2. В ней содержатся ответы на все твои вопросы.
А у тебя какая версия Дельфи?


 
ходячий вопросник   (2001-12-15 17:47) [13]

to evgeg:
Вообще то обычно D5 Enterprise юзаю, редко D3.


 
stasev   (2001-12-16 11:29) [14]

Ne znay kak vse,a ia delay tak:


procedure CorrectStrings(var Data: TMemo);
begin
i:= 0;
while i < Data.Lines.Count do begin
Data.Lines[i]:= Data.Lines.Values[Data.Lines.Names[i]];
Inc(i);
end;
end;

begin
try
LogFile := TIniFile.Create(LogName);
with LogFile as TIniFile do begin
ReadSectionValues("Section Name", Memo1.Lines);
CorrectStrings(Memo1.Lines);
except
MessageDlg("Error reading MAP file !", mtError, [mbOk], 0);
end;
end;


 
stasev   (2001-12-16 11:32) [15]

v samom nachale zabil :)

procedure TfmMainEdit.OpenLog(LogName: string);
var
i, j: integer;
TempString: string;
DataStrings: TStrings;
//////////////////
a potom vse ostalnoe


 
Digitman   (2001-12-17 13:57) [16]

>ходячий вопросник

"Так вот мне считывает значения С ключами, а мне надо БЕЗ ключей."

структура INI-файла :

[section]

Key1 = Value1
Key2 = Value2
...
KeyN = ValueN

слева от знака "=" - имена ключей, справа - значения ключей. Не будет знака "=" - получишь как раз то, что ты получаешь (имена ключей в секции и их значения считываются вместе). А иначе как системе определить, где кончается имя ключа и начинается строковое представление его значения ?
При соблюдении формата INI-файла ф-ция ReadSectionValues() ДОЛЖНА прочитать в заранее подготовленный объект TSringList ТОЛЬКО значения ключей в указанной секции ! А для чтения списка ключей в секции предусмотрена совсем другая ф-ция - ReadSection(). И, если нет разделителей между ключами и значениями, ReadSection() вернет тебе тот же "бред", что и при вызове ReadSectionValues()


 
Дмитрий Д.   (2001-12-17 14:42) [17]

готовое решение:
//пример использования
//edit1.Text:=ReadIni("my.ini","section 1", "value1");

function ReadIni(FName, ASection, AString: string): string;
var
sIniFile: TIniFile;
sPath: string[60];
const
S = "не могу прочитать файл";
begin
GetDir(0, sPath);
sIniFile := TIniFile.Create(FName);
Result := sIniFile.ReadString(ASection, AString, S);
sIniFile.Free;
end;


 
Digitman   (2001-12-17 15:01) [18]

Прошу прощения за искажение истины. ReadSectionValues() действительно читает строку "Key = Value" целиком. Для работы отдельно со значениями ключей можно воспользоваться объектом класса TMemo. Его метод Lines.Values() позаоляет получить значение ключа по его имени (т.е. TMemo реализует ф-цию простейшего парсера записей а-ля ключ INI-файла)



Страницы: 1 вся ветка

Текущий архив: 2002.01.08;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.019 c
4-22473
amamed_3071
2001-11-02 13:46
2002.01.08
Epson Printer commands


1-22203
T2
2001-12-16 07:07
2002.01.08
Отлов ошибки отсутствия msWord


1-22157
Flagman
2001-12-20 13:55
2002.01.08
Найти два возврата каретки подряд.


6-22271
Victor
2001-10-04 20:15
2002.01.08
при конекте не появлялось удаленное соединение????


3-21904
Андрей
2001-11-29 22:18
2002.01.08
query