2009-02-07 4 views

ответ

0

Не парень Java, но из того, что я могу видеть. .properties файлы похожи на файлы .INI, скрытые; он имеет пары name = value, без имен разделов. Вы можете использовать TStringList Delphi для работы с этим; он имеет свойства имен и значений.

Например, чтобы прочитать следующую строку из файла .properties:

MyProgramData=c:\documents and settings\DR\Application Data\MyApp 

я могу просто использовать:

var 
    SL: TStringList; 
    MyDataPath: string; 
begin 
    SL := TStringList.Create; 
    try 
    SL.LoadFromFile('myapp.properties'); 
    MyDataPath := SL.Values['MyProgramData']; 
    finally 
    SL.Free; 
    end; 
    // Do something with MyDataPath 
end; 

Для слишком педантичного читателя, я не утверждаю, что TStringList позволит вам использовать полную функциональность файлов .properties; это может, однако, будет достаточно для того, что вам нужно сделать. (Как я уже сказал, я не парень Java.)

+0

Это недопустимый файл .properties. Обратные косые черты являются особенными. Прочтите документацию для функции java.util.Properties.load(). Знаки равных могут быть частью имени ключа, но INI не поддерживает это. Линии могут быть продолжены с обратными косыми чертами. –

+0

Уммм, Роб? Я не говорил, что это был действительный файл .properties в любом месте, не так ли? –

+1

Нет, я полагаю, вы никогда не говорили, что ваш пример действителен. Но зачем приводить неверные примеры? В Java значение MyProgramData будет «c: документы и настройкиDRApplication DataMyApp». DR заинтересована в совместимости на 100%, поэтому что-то, что не поддерживает обратную косую черту, не влияет на меня как на полезную. –

4

Раньше была Java IDE под названием Gel. Это было написано в Delphi, и это была хорошая среда IDE, поэтому я ожидаю, что она сможет работать с файлами свойств. Автор прекратил работу над проектом. В своем blog post describing the project's cancellation он упоминает, что он открыт для перспективы создания проекта с открытым исходным кодом, но он никогда не снимался. Если вы спросите красиво, вы можете получить части того кода, который вы ищете.

Скептически относитесь к любому найденному вами решению, которое использует интерфейс TStrings для его интерфейса. Хотя этот класс имеет Names и Values свойства, которые делают его привлекательным как класс для работы с парами ключ/значение, он не будет полностью совместим с файлами свойств Java. Причина в том, что Java допускает «=» как символ в имени ключа, а класс TStrings определяет конец имени и начало значения, ища первый символ «=» в строке. Кроме того, файлы свойств Java могут использовать «:» в качестве разделителя, и они могут даже использовать обычные пробелы.

+1

Гель использовал JNI для обработки файлов свойств (т. Е. Не было источника Delphi) –

Смежные вопросы