Я думал о создании своего собственного, но есть много деталей, которые следует учитывать, чтобы сделать его на 100% совместимым с Java .properties, поэтому я сначала спрашиваю.Есть ли библиотека Delphi, которая читает и записывает файлы .properties?
ответ
Не парень 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.)
Раньше была Java IDE под названием Gel. Это было написано в Delphi, и это была хорошая среда IDE, поэтому я ожидаю, что она сможет работать с файлами свойств. Автор прекратил работу над проектом. В своем blog post describing the project's cancellation он упоминает, что он открыт для перспективы создания проекта с открытым исходным кодом, но он никогда не снимался. Если вы спросите красиво, вы можете получить части того кода, который вы ищете.
Скептически относитесь к любому найденному вами решению, которое использует интерфейс TStrings
для его интерфейса. Хотя этот класс имеет Names
и Values
свойства, которые делают его привлекательным как класс для работы с парами ключ/значение, он не будет полностью совместим с файлами свойств Java. Причина в том, что Java допускает «=» как символ в имени ключа, а класс TStrings
определяет конец имени и начало значения, ища первый символ «=» в строке. Кроме того, файлы свойств Java могут использовать «:» в качестве разделителя, и они могут даже использовать обычные пробелы.
Гель использовал JNI для обработки файлов свойств (т. Е. Не было источника Delphi) –
- 1. Cakephp читает и записывает файлы json.
- 2. Есть ли библиотека C++, которая читает именованные столбцы из файлов?
- 3. Есть ли библиотека delphi winsock2?
- 4. Excell VBA читает и записывает папку подкаталогов и ее файлы
- 5. Есть ли библиотека MapReduce для Delphi?
- 6. Простая программа, которая читает и записывает в трубу
- 7. Почему модуль JSON Perl не читает и не записывает файлы?
- 8. Есть ли библиотека, аналогичная conio.h?
- 9. Node.js читает TCPSocket и записывает переменную
- 10. Есть ли инструмент или библиотека в собственной разработке iOS, которая управляет/читает листы изображений/спрайтов?
- 11. Cassandra upgradeSSTable - читает ли и записывает целые данные?
- 12. Есть ли библиотека, которая конвертируется из файла XSLX в CSV?
- 13. Есть ли библиотека, которая принимает файлы Microsoft Office (Word/Excel/ppt) и отображает их изображения?
- 14. Есть ли библиотека, которая может легко изменять и обновлять файлы OWL?
- 15. Есть ли команда bash, которая учитывает файлы?
- 16. Есть ли библиотека соединителей/C++, которая не требует повышения?
- 17. Есть ли библиотека Delphi, которая возвращает все эффективные исходные пути для проекта?
- 18. Есть ли библиотека сжатия XML «Fast Infoset» для Delphi?
- 19. Есть ли хорошая библиотека XPath для Delphi 2007 или выше?
- 20. читает свойство из .properties-файла с JavaFX
- 21. Как документировать файлы .properties?
- 22. Требуется ли в Delphi библиотека времени выполнения?
- 23. Пытается сделать программу шифрования, которая читает и записывает файлы и шифрует с помощью двух ключевых слов. Функция len() не работает
- 24. Jenkins thinBackup поддерживает файлы .properties?
- 25. Delphi 2010 Записывает базу данных и памятку
- 26. Ant читает файлы в каталоге и regex
- 27. Кто читает/записывает память моего приложения
- 28. C++ читает/записывает XML без CLR
- 29. C++ читает/записывает XML без CLR
- 30. Жесткий диск читает и записывает без создания файла
Это недопустимый файл .properties. Обратные косые черты являются особенными. Прочтите документацию для функции java.util.Properties.load(). Знаки равных могут быть частью имени ключа, но INI не поддерживает это. Линии могут быть продолжены с обратными косыми чертами. –
Уммм, Роб? Я не говорил, что это был действительный файл .properties в любом месте, не так ли? –
Нет, я полагаю, вы никогда не говорили, что ваш пример действителен. Но зачем приводить неверные примеры? В Java значение MyProgramData будет «c: документы и настройкиDRApplication DataMyApp». DR заинтересована в совместимости на 100%, поэтому что-то, что не поддерживает обратную косую черту, не влияет на меня как на полезную. –