Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод данных в формате XML 
:(
    Опции темы
Damon2013
Дата 27.3.2013, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.3.2013

Репутация: нет
Всего: нет



Здравствуйте, есть такая задача. Нужно вывести данные из файла Vcard в формате XML. Подскажите, пожалуйста, как это сделать. Слышал что-то про XMLDocument. Это то самое?
Вот прилагаю листинг. Сделал открытие файла и вывод содержимого в memo, а теперь ещё нужно и XML
Код

unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    memo1: TMemo;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
 F: TextFile;
 S: string;
 
begin
   OpenDialog1.Execute;
   if (OpenDialog1.FileName<>'')then
   begin
   assignFile(f,OpenDialog1.FileName);
   Reset(f);
   while not Eof(F) do
   begin
   Readln(F, S);
   memo1.Lines.Add(s);
   end;
   CloseFile(F);
end;
    end;
procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Clear;
end;
 
end.


Заранее спасибо
PM MAIL   Вверх
Akella
Дата 27.3.2013, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



А так не пробовал?
PM MAIL   Вверх
Damon2013
Дата 27.3.2013, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.3.2013

Репутация: нет
Всего: нет



да пробовал гуглить! Только там в основном информация о том, как работать с XML-файлами, загружать их в делфи. А мне же нужно содержимое файла вывести в формате XML в виде тегов. До этого с этим не сталкивался, поэтому прошу помощи
PM MAIL   Вверх
Akella
Дата 27.3.2013, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



по какому запросу гуглил?
PM MAIL   Вверх
Damon2013
Дата 27.3.2013, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.3.2013

Репутация: нет
Всего: нет



delphi и xml
PM MAIL   Вверх
Akella
Дата 27.3.2013, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



используй библиотеку nativexml

Добавлено через 37 секунд
Цитата(Damon2013 @ 27.3.2013,  18:03)
delphi и xml

А так не догадался?
PM MAIL   Вверх
DYUMON
Дата 28.3.2013, 06:24 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 17.6.2006
Где: Новосибирск

Репутация: нет
Всего: 3



как то так 
Код

 for i := 1 to inputlist.Count - 1 do
      begin
        outputlist.Add('<Òîâàð Èäåíòèôèêàòîð="' + getword(inputlist.Strings[i],
          ';', 1) + '" ÈäåíòèôèêàòîðÂÊàòàëîãå="' + getword(inputlist.Strings[i],
          ';', 1) + '" Íàèìåíîâàíèå="' + getword(inputlist.Strings[i], ';', 2) +
          '"/>');
      end;
      outputlist.Add('</Êàòàëîã>');
      outputlist.Add('<Äîêóìåíò Äàòà="' + getword(inputlist.Strings[0], ';', 2) +
        '" Íîìåð="' + getword(inputlist.Strings[0], ';', 1) +
        '" Òèï="Ïîñòàâêà"> <ÄîïîëíèòåëüíûéÐåêâèçèò Íàèìåíîâàíèå="Íîìåð äîãîâîðà" Çíà÷åíèå="80/12" /> ');
      outputlist.Add('<ÏðåäïðèÿòèåÂÄîêóìåíòå Ðîëü="buyer" Êîíòðàãåíò="7322"/>');
      for i := 1 to inputlist.Count - 1 do
      begin //öåíà
        outputlist.Add('<ÒîâàðíàÿÏîçèöèÿ Êàòàëîã="5406365636" Òîâàð="' +
          getword(inputlist.Strings[i], ';', 1) + '" Öåíà="' +
          getword(inputlist.Strings[i], ';', 3) + '" Êîëè÷åñòâî="' +
          getword(inputlist.Strings[i], ';', 4) + '" Åäèíèöà="' +
          getword(inputlist.Strings[i], ';', 5) + '" Ñóììà="' +
          getword(inputlist.Strings[i], ';', 6) + '" ÃÒÄ="' +
          getword(inputlist.Strings[i], ';', 7) + '" ÑòðàíàÏðîèñõîæäåíèÿ="' +
          getword(inputlist.Strings[i], ';', 8) + '">');



Это сообщение отредактировал(а) DYUMON - 28.3.2013, 06:24


--------------------
Всех программистов надо посадить на целероны, что бы впредь головой думали что пишут.
user posted image
PM MAIL ICQ Skype   Вверх
Damon2013
Дата 29.3.2013, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.3.2013

Репутация: нет
Всего: нет



Ещё хотел спросить, как мне Обеспечивать анализ кодовой страницы, в которой записаны данные (т.к. файлы могут быть созданы в различных приложениях и операционных системах)? Конкретно касаемо файла Vcard.  
PM MAIL   Вверх
Damon2013
Дата 31.3.2013, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.3.2013

Репутация: нет
Всего: нет



файл vCard выглядит след. образом:
BEGIN:VCARD
VERSION:3.0
TEL:121220
N:Пупкин;Василий;Иванович;
END:VCARD

А мне нужно вывести результат таким образом:
<VCard>
<BEGIN>VCARD</BEGIN>
<VERSION>3.0</VERSION>
<TEL>121220</TEL>
<N>Пупкин;Василий;Иванович;</N>
<END>VCARD</END>
</VCard>

Начал разбираться с XMLDocument 
Код

var
  Xml: IXMLDocument;
begin
  Xml := TXMLDocument. Create (nil);
  Xml.Active := true;
  XML.Version := '1.0';
  XML.Encoding := 'UTF-8';
  with Xml do
    begin
     with AddChild ('package') do
        begin
          ChildValues [''] := '';


и вот тут возникли трудности 
Код

 ChildValues [''] := '';

Как мне сделать так, чтоб автоматически программа заносила в теги то, что до знака :  ? 

Это сообщение отредактировал(а) Damon2013 - 31.3.2013, 18:43
PM MAIL   Вверх
Akella
Дата 31.3.2013, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



Программа не работает "автоматически". Программа работает именно так, как она "запрограммирована".

Добавлено через 2 минуты и 20 секунд
Цитата(Damon2013 @  31.3.2013,  18:42 Найти цитируемый пост)
программа заносила в теги то, что до знака :


Ищешь двоеточие и берёшь только ту часть строки, которая расположена до двоеточия.
1. Используй Copy() + Pos()

2. 
https://www.google.com.ua/#hl=ru&sclien...920&bih=962

http://www.delphifaq.ru/rabota-s-tekstom-i-strokami/

https://www.google.com.ua/#hl=ru&sclien...f=p&pdl=300
PM MAIL   Вверх
Damon2013
Дата 1.4.2013, 05:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.3.2013

Репутация: нет
Всего: нет



hCard - вот что мне подойдет... только как мне конвертировать vCard в hCard  в Delphi? Может кто сталкивался с этим?

Это сообщение отредактировал(а) Damon2013 - 2.4.2013, 13:56
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0813 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.