Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.116.89.81] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Здавствуйте, есть файл.reg, следующего содержания:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Akelsoft] [HKEY_CURRENT_USER\Software\Akelsoft\AkelPad] [HKEY_CURRENT_USER\Software\Akelsoft\AkelPad\Options] "ReadOnly"=dword:00000000 "MarginsPrint"=hex:e8,03,00,00,e8,03,00,00,e8,03,00,00,e8,03,00,00 "LanguageModule"="Russian.dll" Root: HKCU; SubKey: Software\Akelsoft\AkelPad\Options; ValueType: dword; ValueName: ReadOnly; ValueData: $00000000 Root: HKCU; SubKey: Software\Akelsoft\AkelPad\Options; ValueType: binary; ValueName: MarginsPrint; ValueData: e8 03 00 00 e8 03 00 00 e8 03 00 00 e8 03 00 00 Root: HKCU; SubKey: Software\Akelsoft\AkelPad\Options; ValueType: string; ValueName: LanguageModule; ValueData: Russian.dll |
Сообщ.
#2
,
|
|
|
Цитата Serega_ @ Как его сохранить в текстовый файл, в следующем виде: Загнать файл в StringList, в цикле просматривать каждую строку и составлять свою, которую можно затем писать в Мемо (для наглядности). По окончании цикла - сохранять данные из Мемо в файл в новом виде. |
Сообщ.
#3
,
|
|
|
Цитата Если не сложно, можете показать пример как это сделать? Загнать файл в StringList, в цикле просматривать каждую строку и составлять свою |
Сообщ.
#4
,
|
|
|
Цитата Serega_ @ Если не сложно, можете показать пример как это сделать? А в чем проблема? Не получается загнать в список? Не получается распарсить строку и привести ее к виду, представленному тобой? Не получается сохранить новый файл? Или что то другое? |
Сообщ.
#5
,
|
|
|
medved_68, дело в том, что только учусь и не знаю как
Цитата Не получается загнать в список? Не получается распарсить строку и привести ее к виду, представленному тобой? Т.е. я сделал на форме mmo1: TMemo и пытаюсь загрузить в него файд.reg mmo1.Lines.LoadFromFile(dlgOpen1.FileName); Получаю три корявых символа... Ну, а как распарсить строку и привести ее к виду представленному выше, я вообще не знаю... |
Сообщ.
#6
,
|
|
|
Цитата Serega_ @ Получаю три корявых символа... Правильно получаешь. В каком формате у тебя *.reg файлы? У меня, например, Windows Registry Editor Version 5.00 сохраняет в юникоде. Подозреваю, что и у тебя тоже. Поэтому есть варианты: 1. Использовать TntMemo - тогда сие: Цитата Serega_ @ получится без проблем и ты увидишь в Мемо (ТНТ компонент) свой файл.mmo1.Lines.LoadFromFile(dlgOpen1.FileName); 2. Открыть файл в блокноте и сохранить как ANSII - тогда ты и в обычном Мемо увидишь. 3. Сделать лишние телодвижения перед загрузкой файла - преобразовать его, выкинув байты $FF,$FE,$00 из файла - тогда он станет ANSII формата и спокойно загрузится в обычный Мемо или список. Выбор за тобой. Добавлено Цитата Serega_ @ Ну, а как распарсить строку и привести ее к виду представленному выше, я вообще не знаю... При помощи Pos , т.е. получаешь строку из списка - проверяешь на вхождение символов '[',']' - есть значит проверяем что там и заменяем на Root: HKCU или Root: что то еще, выдергиваем путь, пишем SubKey + путь. Далее - параметры. Если параметров нет - можно сразу пропускать (зависит от задания). |
Сообщ.
#7
,
|
|
|
medved_68, а где можно почитать про TntMemo и где можно его скачать?
|
Сообщ.
#8
,
|
|
|
Цитата Serega_ @ medved_68, а где можно почитать про TntMemo и где можно его скачать? Могу выслать установочный пакет - 594К. У тебя какая Дельфи? У меня в 7 нормально встал и работоспособен, про другие не скажу - не знаю. |
Сообщ.
#9
,
|
|
|
medved_68, у меня тоже семёрка... Ну если не сложно, то буду благодарен...
|
Сообщ.
#10
,
|
|
|
Цитата Serega_ @ Ну если не сложно, то буду благодарен... Куда? Или на файлообмен? |
Сообщ.
#11
,
|
|
|
на файлообмен или на serg_0675@mail.ru
|
Сообщ.
#12
,
|
|
|
Цитата Serega_ @ на файлообмен или на serg_0675@mail.ru Сбросил на мыло. |
Сообщ.
#13
,
|
|
|
medved_68, спасибо, буду пока разбираться...
|
Сообщ.
#14
,
|
|
|
Цитата Serega_ @ medved_68, спасибо, буду пока разбираться... Как скажешь. Я бы выбрал 3 вариант - преобразовал файл примерно так: procedure TForm1.Button1Click(Sender: TObject); var Files:TFileStream;Memos:TMemoryStream; Data:Byte; begin if OpenDialog1.Execute then begin Files:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead); Memos:=TMemoryStream.Create; repeat Files.ReadBuffer(Data,1); if (Data=$FF) or (Data=$FE) or (Data=$00) then Data:=$00 else Memos.WriteBuffer(Data,1); until Files.Position = Files.Size; Files.Free; Memos.Position:=0; Memo1.Lines.LoadFromStream(Memos); Memos.Free; end; end; |
Сообщ.
#15
,
|
|
|
medved_68, спасибо за пример и за компонент, загружается и в том и в другом случае нормально.
Но дальше, чего-то я совсем запутался, т.е я хотел сделать, в Memo1 загружать файл .reg, а в Memo2 загружать уже конвертированный вариант, чтоб было их оба видно и можно было бы их сравнить... Каким образом пользоваться Pos? Как проверить на вхождение символов '[',']'? Из тех примеров, которые нашёл, я ничего не понял... |