Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030

Профиль | Отправить PM | Цитировать


ivsatel, так вам же нужно заменить данные, а не новые записать. Пример функции, заменяющей данные между всеми найденными тегами в файле:
Код: Выделить весь код
[code]
function ReplaceDataXML(FileName, TagName, Data: String): Boolean;
var
  oXMLDoc, objNodeList: Variant;
  i: integer;
  MD5: String;
begin
  if not FileExists(FileName) then Exit;
  MD5 := GetMD5OfFile(FileName);
  try
    oXMLDoc := CreateOleObject('Microsoft.XMLDOM');
  except
    ShowExceptionMessage;
    Exit;
  end;
  oXMLDoc.async := False;
  oXMLDoc.load(FileName);
  objNodeList := oXMLDoc.getElementsByTagName(TagName);
  for i := 0 to objNodeList.length-1 do
    objNodeList.item[i].firstChild.data := Data;
  oXMLDoc.save(FileName);
  Result := (MD5 <> GetMD5OfFile(FileName));
end;

//где-то там вызов
if ReplaceDataXML(ExpandConstant('{src}\preferences.xml'), 'filename', 'blablabla') then
  MsgBox('OK', mbInformation, MB_OK)
else
  MsgBox('Failure', mbError, MB_OK);
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:42, 17-05-2011 | #1625