Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2014, 14:19   #1
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
По умолчанию работа с файлами xml

ну наконец то, я зашла сюда, года 2 не была точно.
вопрос: есть вялое подобие xml-файла, с четкой структурой, все как надо, но корректно не открывается из-за наличия в конце файла пробелов. как устранить проблему? открывать как блокнот, искать последний тег </message> и удалять лишние символы?
kate158 вне форума Ответить с цитированием
Старый 28.08.2014, 14:31   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Чем не открывается? XMLDocument такое съест без проблем
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 28.08.2014 в 14:35.
Аватар вне форума Ответить с цитированием
Старый 28.08.2014, 14:34   #3
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
По умолчанию

файл должен корректно разбираться и загружаться в БД в последствии,
а если открыть в IE, то в самом конце ошибка: "Не удается отобразить страницу XML
Не удается просмотреть ввод XML с использованием списка стилей XSL. Исправьте ошибку и затем нажмите кнопку "Обновить"или повторите попытку позднее. Ошибка в элементе верхнего уровня документа. Ошибка при обработке ресурса ''file:///C:/Documents and Settings/..."
kate158 вне форума Ответить с цитированием
Старый 28.08.2014, 14:38   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Дык в данных проблема, пробелы не при делах. Сюда его прикрепите, если не секрет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.08.2014, 14:43   #5
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
По умолчанию

я думаю проблема в пробелах в конце файла. как ее убрать? с какими компонентами работать?
Вложения
Тип файла: rar 80020_1001000012_20140826_18353.rar (3.3 Кб, 23 просмотров)

Последний раз редактировалось kate158; 28.08.2014 в 14:49.
kate158 вне форума Ответить с цитированием
Старый 28.08.2014, 15:07   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Там двоичные нули в конце и много, а не пробелы. Придется убрать или заменить на пробелы и будет Ok. Отредактировать можно в FileStream, MemoryStream или любыми средствами, позволяющими редактировать двоичные файлы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 28.08.2014 в 15:13.
Аватар вне форума Ответить с цитированием
Старый 28.08.2014, 15:12   #7
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
По умолчанию

что для этого следует использовать? и вообще какой план действий?
kate158 вне форума Ответить с цитированием
Старый 28.08.2014, 15:16   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

там в конце не пробелы, а нули (нулевые байты).

Похоже, что какой-то софт глючит.
Вас устроит вариант - открыть исходный файл, переписать в новый (или временный) файл всё, кроме конечных нулевых байт, и далее работать с новым файлом?



добавлено через 1 минуту
Блин, какие все быстрые.. пока я читал и файл открывал, тут уже кучу постов понаписали...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.08.2014, 15:49   #9
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
По умолчанию

я же не могу его открыть? на строке
Код:
XMLDocument1.Active := True;
вылазит ошибка "В текстовом комментарии обнаружен недопустимый знак"

мой код полностью:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  F : File;
  i, j, Size : Integer;
  S : String; //AnsiString;
  XmlDocNode, XmlAttr : IXMLNode;
  Od : TOpenDialog;
  mainNode: IXMLNode;
  nodes: IXMLNodeList;
begin
  Od := OpenDialog1;
  if Od.InitialDir = '' then
    Od.InitialDir := ExtractFilePath(Application.ExeName);
  if not Od.Execute then Exit;
  if not FileExists(Od.FileName) then begin
    ShowMessage("Файл с заданным именем не существует. Действие отменено");
    Exit;
  end;

  AssignFile(F, Od.FileName);
  Reset(F, 1);
  Size := FileSize(F);
  SetLength(S, Size);
  BlockRead(F, S[1], Size);
  CloseFile(F);

  XMLDocument1.LoadFromXML(S);
  XMLDocument1.Active := True;
  mainNode := xmlDocument1.DocumentElement;
  nodes := mainNode.ChildNodes;
        For i := 0 To nodes.Count -1 Do
                memo1.Lines.Add(nodes.Get(i).NodeValue);
                xmlDocument1.Active :=False;
end;

Последний раз редактировалось kate158; 28.08.2014 в 15:54.
kate158 вне форума Ответить с цитированием
Старый 28.08.2014, 15:59   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

И не откроете, сначала избавьтесь от нулей.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 28.08.2014 в 16:02.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами Konlor Общие вопросы C/C++ 2 18.05.2014 12:37
работа с xml файлами в MVS 2008 Professor_DU Visual C++ 4 28.01.2013 12:38
работа с xml файлами Professor_DU Общие вопросы C/C++ 0 24.01.2013 20:07
[php] Работа с XML файлами dolci2006 PHP 0 20.04.2010 16:54
Работа с xml файлами Rstud Общие вопросы .NET 1 04.01.2010 12:47