Текущий архив: 2005.10.09;
Скачать: CL | DM;
Вниз
Работа со строками Найти похожие ветки
← →
Теплый снег © (2005-08-26 15:13) [0]добрый день.
Вопрос такой .Есть функция, которая читает из ини файла строки :function ShowMyMessage(SectionName, MsgID, FileName: string): string;
var
IniFile: TIniFile;
begin
IniFile := TIniFile.Create(FileName);
Result := IniFile.ReadString(SectionName, MsgID, "No Comments :)");
IniFile.Free;
end;
Функция работает нормально , Но есть один нюанс.Например если я должен вывести сообщение типа "Файл Такой-то будет удален". Мне приходиться в ин файле создавать две строки :
mes1=Файл
mes2=будет удален
а потом их собирать вместеShowMessage(ShowMyMessage("Msg","msg1",ExtractFilePath(Application.ExeName)
+ OPComboBox.Text) + BackupNameTextLb.Caption +
ShowMyMessage("Msg","msg2",ExtractFilePath(Application.ExeName)
+ OPComboBox.Text));
Вопрос такой можно ли эти две строки собрать в одну ? Чтобы дважды не вызывать функцию .
Заранее спасибо
← →
Digitman © (2005-08-26 15:18) [1]
> Мне приходиться в ин файле создавать две строки
это зачем еще ?
что значит "приходится" ? тебя кто-то заставляет хранить инф-цию именно в таком виде ?
← →
Теплый Снег © (2005-08-26 15:22) [2]Именно в таком виде и приходиться :) ...
А если серьезно просто интересно , как это сделать .
← →
Leonid Troyanovsky © (2005-08-26 15:30) [3]
> Теплый Снег © (26.08.05 15:22) [2]
> А если серьезно просто интересно , как это сделать .
Можно даже не делать, если воспользоваться TMemIniFile.
--
Regards, LVT.
← →
Digitman © (2005-08-26 15:32) [4]
> Теплый Снег © (26.08.05 15:22) [2]
> Именно в таком виде и приходиться
ну и глупо, я бы сказал ..
ЧТО мешает организовать ini-файл, например, со след.структурой :
[FileMsgs]
msg1 = Файл 1
msg2 = Файл 15
msg3 = Файл 4
msg4 = Файл 35
msg1Comment = будет удален
msg2Comment = уже удален
msg3Comment = еще не создан
??
тогда
function ShowMyMessage(SectionName, MsgID, FileName: string): string;
var
IniFile: TIniFile;
begin
IniFile := TIniFile.Create(FileName);
with IniFile do
try
Result := ReadString(SectionName, MsgID, "No message ") +
ReadString(SectionName, MsgID+Comment, "No message "" + MsgID + "" comment");
finally
Free;
end;
end;
← →
Leonid Troyanovsky © (2005-08-26 15:37) [5]
> Digitman © (26.08.05 15:32) [4]
> > Именно в таком виде и приходиться
> ну и глупо, я бы сказал ..
Отнюдь. Вместо "файла" можно поставить, скажем "текст".
Вариантность больше, меньше строк хранить.
> ЧТО мешает организовать ini-файл, например, со след.структурой
> msg1 = Файл 1
> msg2 = Файл 15
> msg3 = Файл 4
> msg4 = Файл 35
Вот это, действительно, неразумно.
Числовой идентификатор сформировать - проще простого.
--
Regards, LVT.
← →
han_malign © (2005-08-26 15:39) [6]>ShowMyMessage("Msg","msg1",ExtractFilePath(Application.ExeName)
+ OPComboBox.Text) + BackupNameTextLb.Caption +
ShowMyMessage("Msg","msg2",ExtractFilePath(Application.ExeName)
+ OPComboBox.Text)
mes=Файл %s будет удален
Format(ShowMyMessage("Msg","msg",ExtractFilePath(Application.ExeName)
+ OPComboBox.Text),[BackupNameTextLb.Caption])
← →
Erik1 © (2005-08-26 15:53) [7]А каждый раз создовать экземпляр TIniFile немуторно? Можно один раз создать и сделать ReadString сколько душе угодно.
← →
Теплый Снег © (2005-08-26 15:55) [8]Спасибо всем получилось так :
mes=Файл %s будет удален
Format(ShowMyMessage("Msg","msg",ExtractFilePath(Application.ExeName)
+ OPComboBox.Text),[BackupNameTextLb.Caption])
han_malign спасибо тебе большое , не то я с FormatString мучался :) о Format и не подумал ...
Всем огромное спасибо...
З.ы.
На самом деле держать строки сообщений в одном ини файле намного удобнее чем разбрасывать сообющения по всему коду ...
В любой момент можно поменять (исправить ) нужное сообщение...
И еще при необходимости можно эту инишку использовать для переводя приложения на другие языки ...
Мое почтение
← →
Джо © (2005-08-26 15:56) [9]Лучше использовать функцию Format или другие, основанные на ней.
Например:
Inifile:
...
Msg1=Файл %s будет удален.
...
// Код:
S := ReadString (...);
ShowMessageFmt (S,[FileName]);
В таком духе.
← →
Джо © (2005-08-26 15:57) [10]
> [6] han_malign © (26.08.05 15:39)
Сорри, не доглядел.
Страницы: 1 вся ветка
Текущий архив: 2005.10.09;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.013 c