Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 1048
от 29.01.2008, 09:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 433, Экспертов: 59
В номере:Вопросов: 1, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 119910: Здравствуйте. Хотел бы по интересоваться, как реализовать такое. Написал программку, которая работает с ини файлом другой программы, но не могу понять- имея listbox, как загрузить в него данные с ини файла в 9 колонок? Содержимое ини файла вы...

Вопрос № 119.910
Здравствуйте.
Хотел бы по интересоваться, как реализовать такое.
Написал программку, которая работает с ини файлом другой программы, но не могу понять- имея listbox, как загрузить в него данные с ини файла в 9 колонок? Содержимое ини файла выглядит так:
[ColorEffect]
Color1=(R1=0,G1=10,B1=20,R2=0,G2=0,B2=30,tran=0.1,Number=0.1)
Color2=(R1=0,G1=10,B1=20,R2=0,G2=0,B2=30,tran=0.1,Number=0.1)
Color3=(R1=0,G1=10,B1=20,R2=0,G2=0,B2=30,tran=0.1,Number=0.1)

Надо загрузить все эти строки в listbox в 9 колонок построчно т.е.

Color1 0 10 20 0 0 30 0.1 0.1
Color2 0 10 20 0 0 30 0.1 0.1
и т.д.
С файлом работаю через TiniFile. Пробывал через ReadSectionValues, но в данной секции есть имена переменных, которые мне не нужны - надо считать все у которых название color (т.е. 5 символов с названия).
Или может есть другой какой нить способ реализовать это ?
Если можно, то пример хотя бы наводящий. За ранее спасибо.
Отправлен: 24.01.2008, 08:43
Вопрос задал: Gavrila (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Raptor3
Здравствуйте, Gavrila!

1. вариант
считываем ReadSection('ColorEffect',stringList) с ColorEffect все "переменные" в TStringList
бежим по StringList и проверяем - color ли это - если да, то считываем его значение - ReadString('ColorEffect',stringList[i],''), полученную строку парсим "(R1=0,G1=10,B1=20,R2=0,G2=0,B2=30,tran=0.1,Number=0.1)"
2.
проще бы было если структура ини файла имела такой вид
[Color1]
R1=0
G1=10
B1=20
R2=0
G2=0
B2=30
tran=0.1
Number=0.1
---------
Программист - это человек который решает проблему, о которой вы не знаете, способом который вы не понимаете
Ответ отправил: Raptor3 (статус: 4-ый класс)
Ответ отправлен: 24.01.2008, 09:18

Отвечает: Selya
Здравствуйте, Gavrila!
Предлагаю разбить эту задачу на два этапа:
1. Считать ini-файл во временный TStrings. Здесь может сгодиться ваша ReadSectionValues.
2. Парсинг (разбиение) каждого Item'а этого временного TString'а с целью "выуживания" необходимых переменных. Для этого:
a. "Обрезаем" скобки.
b. Поскольку разделитель - запятая, можно легко выделеить каждое равенство этой строки:
var
Str: TStringList;
begin
Str := TStringList.Create;
try
Str.Text := S; // S - строка с "R1=0,G1=10,B1=20,R2=0,G2=0,B2=30,tran=0.1,Number=0.1"
finally
Str.Free;
end;
end;

У вас получится TStringList примерно с таким содержимым:
Item[0] "R1=0"
Item[1] "G1=10"
и т.д.
Ну а дальше "выцепляем" значения переменных, те что после знака "=":
S := Copy(Item[I], Pos("=", Item[I])+1, Length(Item[I]))

А дальше задача загрузки полученных переменных в листбох по колонкам (см. в приложении).

Приложение:

Ответ отправил: Selya (статус: 4-ый класс)
Ответ отправлен: 24.01.2008, 09:20


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное