halfblood

Как создавать и редактировать xml-файлы?

09.04.2008, 20:02. Показов 3795. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я думаю для вас ето простенький вопрос(буду признателен за помощь).
А вопрос состоит вот в чем: как создавать и редактировать xml-файлы?
Спасибо наперед за ответ.
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.04.2008, 20:02
Ответы с готовыми решениями:

Разработать программу, которая сможет создавать и редактировать простые HTML файлы
Разработать программу, которая сможет создавать и редактировать простые HTML файлы.

можно ли создавать xml-файлы в обычном текстовом редакторе, как блокнот?
можно ли создавать xml-файлы в обычном текстовом редакторе, как блокнот? если да, то с каким расширением надо сохранять, и есть ли примеры...

Как создавать и редактировать стили в Expression Blend 4
Всем привет! Есть ли какое-нибудь руководство по созданию дизайна элементов Expression Blend 4? Спасибо!

2
2 / 2 / 3
Регистрация: 20.03.2008
Сообщений: 27
10.04.2008, 09:10
Лучший ответ Сообщение было отмечено как решение

Решение

сделать экспорт TDataSet в XML файл

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
{Unit to export a dataset to XML}
 
Unit DS2XML;
interface
uses Classes, DB;
Procedure DatasetToXML(Dataset: TDataSet; FileName: String);
 
implementation
uses SysUtils;
 
Var SourceBuffer:  PChar;
Procedure WriteString(Stream: TFileStream; s: String);
Begin
   StrPCopy(SourceBuffer, s);
   Stream.Write(SourceBuffer[0], StrLen(SourceBuffer));
End;
 
Procedure WriteFileBegin(Stream: TFileStream; Dataset: TDataSet);
Function XMLFieldType(fld: TField):  string;
Begin
   Case fld.DataType Of 
      ftString:  Result := '"string" WIDTH="' + IntToStr(fld.Size) + '"';
      ftSmallint:  Result := '"i4"';
 
      //?? ftInteger: Result := '"i4"';
      ftWord:  Result := '"i4"';
 
      //?? ftBoolean: Result := '"boolean"';
      ftAutoInc:  Result := '"i4" SUBTYPE="Autoinc"';
      ftFloat:  Result := '"r8"';
      ftCurrency:  Result := '"r8" SUBTYPE="Money"';
      ftBCD:  Result := '"r8"';
 
      //?? ftDate: Result := '"date"';
      ftTime:  Result := '"time"';
 
      //?? ftDateTime: Result := '"datetime"';
      Else
   End;
   If fld.Required Then Result := Result + ' required="true"';
   If fld.ReadOnly Then Result := Result + ' readonly="true"';
End;
 
Var i:  Integer;
Begin
   WriteString(Stream, '<?xml version="1.0" standalone="yes"?><!-- Generated by SMExport --> ' +
               '<DATAPACKET Version="2.0">');
   WriteString(Stream, '<METADATA><FIELDS>'); {write th metadata}
   With Dataset Do
      For i := 0 To FieldCount - 1 Do
      Begin
         WriteString(Stream, '<FIELD attrname="' + Fields[i].FieldName + '" fieldtype=' +
                     XMLFieldType(Fields[i]) + '/>');
      End;
   WriteString(Stream, '</FIELDS>');
   WriteString(Stream, '<PARAMS DEFAULT_ORDER="1" PRIMARY_KEY="1" LCID="1033"/>');
   WriteString(Stream, '</METADATA><ROWDATA>');
End;
Procedure WriteFileEnd(Stream: TFileStream);
Begin
   WriteString(Stream, '</ROWDATA></DATAPACKET>');
End;
Procedure WriteRowStart(Stream: TFileStream; IsAddedTitle: Boolean);
Begin
   If Not IsAddedTitle Then WriteString(Stream, '<ROW');
End;
Procedure WriteRowEnd(Stream: TFileStream; IsAddedTitle: Boolean);
Begin
   If Not IsAddedTitle Then WriteString(Stream, '/>');
End;
Procedure WriteData(Stream: TFileStream; fld: TField; AString: ShortString);
Begin
   If Assigned(fld) And (AString <> '') Then
      WriteString(Stream, ' ' + fld.FieldName + '="' + AString + '"');
End;
Function GetFieldStr(Field: TField):  string;
Function GetDig(i, j: Word):  string;
Begin
   Result := IntToStr(i);
   While (Length(Result) < j) Do
      Result := '0' + Result;
End;
 
Var Hour, Min, Sec, MSec:  Word;
Begin
   Case Field.DataType Of 
      ftBoolean:  Result := UpperCase(Field.AsString);
      ftDate:  Result := FormatDateTime('yyyymmdd', Field.AsDateTime);
      ftTime:  Result := FormatDateTime('hhnnss', Field.AsDateTime);
      ftDateTime:
      Begin
         Result := FormatDateTime('yyyymmdd', Field.AsDateTime);
         DecodeTime(Field.AsDateTime, Hour, Min, Sec, MSec);
         If (Hour <> 0) Or (Min <> 0) Or (Sec <> 0) Or (MSec <> 0) Then
            Result := Result + 'T' + GetDig(Hour, 2) + ':' + GetDig(Min, 2) +
            ':' + GetDig(Sec, 2) + GetDig(MSec, 3);
      End;
      Else Result := Field.AsString;
   End;
End;
Procedure DatasetToXML(Dataset: TDataSet; FileName: String);
 
Var Stream:  TFileStream;
   bkmark:  TBookmark;
   i:  Integer;
Begin
   Stream := TFileStream.Create(FileName, fmCreate);
   SourceBuffer := StrAlloc(1024);
   WriteFileBegin(Stream, Dataset);
   With DataSet Do
   Begin
      DisableControls;
      bkmark := GetBookmark;
      First; {write a title row}
      WriteRowStart(Stream, True);
      For i := 0 To FieldCount - 1 Do
         WriteData(Stream, Nil, Fields[i].DisplayLabel); {write the end of row}
      WriteRowEnd(Stream, True);
      While (Not EOF) Do
      Begin
         WriteRowStart(Stream, False);
         For i := 0 To FieldCount - 1 Do
            WriteData(Stream, Fields[i], GetFieldStr(Fields[i])); {write the end of row}
         WriteRowEnd(Stream, False);
         Next;
      End;
      GotoBookmark(bkmark);
      EnableControls;
   End;
   WriteFileEnd(Stream);
   Stream.Free;
   StrDispose(SourceBuffer);
End;
End.
Delphi
1
2
3
4
5
6
7
//Beispiel, Example:
 
Uses DS2XML;
Procedure TForm1.Button1Click(Sender: TObject);
Begin
   DatasetToXML(Table1, 'test.xml');
End;
0
halfblood
10.04.2008, 22:45
Спасибо
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2008, 22:45
Помогаю со студенческими работами здесь

Как программно создавать, редактировать, сохранять MS Word, Excel 2013?
Платформа: Microsoft Visual Studio Community 2015. Предпочитаемый язык программирования: C#. Система: Windows 8.1. Нужно создать очень...

Подскажите как создать приложение, позволяющее создавать и редактировать древообразные структуры записей
Разработать многооконное MDI приложение, позволяющее создавать и редактировать древообразные структуры записей, сохранять их в файлах и...

Как редактировать элементы в XML-документе?
Добрый день! У меня есть проект Windows Forms с привязанным XML-документом. Данные из XML попадают в текстбоксы формы. Как можно...

Как редактировать ui файлы?
Привет. как можно редактировать .ui файлы?

Как считывать и как записывать XML файлы? И вообще,является ли хорошим тоном хранить данные в xml?
Я знаю,насколько часто меня любят отправлять в гугл,но проблема такова,что везде показывается работа с разными классами и методами записи и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
Создание нейросети с PyTorch
AI_Generated 19.06.2025
Ключевое преимущество PyTorch — его питоновская натура. В отличие от TensorFlow, который изначально был построен как статический вычислительный граф, PyTorch предлагает динамический подход. Это. . .
JWT аутентификация в ASP.NET Core
UnmanagedCoder 18.06.2025
Разрабатывая веб-приложения, я постоянно сталкиваюсь с дилеммой: как обеспечить надежную аутентификацию пользователей без ущерба для производительности и масштабируемости? Классические подходы на. . .
Краткий курс по С#
aaLeXAA 18.06.2025
Здесь вы найдете все необходимые функции чтоб написать програму на C# Задание 1: КЛАСС FORM 1 public partial class Form1 : Form { Spisok listin = new Spisok(); . . .
50 самых полезных примеров кода Python для частых задач
py-thonny 17.06.2025
Эффективность работы разработчика часто измеряется не количеством написаных строк, а скоростью решения задач. Готовые сниппеты значительно ускоряют разработку, помогают избежать типичных ошибок и. . .
C# и продвинутые приемы работы с БД
stackOverflow 17.06.2025
Каждый . NET разработчик рано или поздно сталкивается с ситуацией, когда привычные методы работы с базами данных превращаются в источник бессонных ночей. Я сам неоднократно попадал в такие ситуации,. . .
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru