Форум: "Основная";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
ВнизЧтение значений из 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c