Develop and Download Open Source Software

Browse CVS Repository

Contents of /gikonavigoeson/gikonavi/AddressHistory.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3.2.1 - (show annotations) (download) (as text)
Mon Apr 19 22:46:48 2004 UTC (20 years ago) by yoffy
Branch: stable
Changes since 1.3: +28 -30 lines
File MIME type: text/x-pascal
・ハ゛タ 47 相当にマージ。

1 unit AddressHistory;
2
3 interface
4
5 uses
6 SysUtils, Classes, {SAX, SAXHelpers, SAXComps, SAXKW,}
7 GikoSystem, {XMLIntf, XMLDoc}{, HttpApp} GikoXMLDoc, YofUtils;
8
9 type
10 TAddressHistoryDM = class(TDataModule)
11 private
12 { Private ?辿?転 }
13 FReadCount: Integer;
14
15 // procedure SAXStartDocument(Sender: TObject);
16 // procedure SAXEndDocument(Sender: TObject);
17 // procedure SAXStartElement(Sender: TObject; const NamespaceURI, LocalName, QName: SAXString; const Atts: IAttributes);
18 // procedure SAXEndElement(Sender: TObject; const NamespaceURI, LocalName, QName: SAXString);
19 // procedure SAXCharacters(Sender: TObject; const PCh: SAXString);
20 public
21 { Public ?辿?転 }
22 procedure ReadHistory(sl: TStrings; ReadCount: Integer);
23 procedure WriteHistory(sl: TStrings; WriteCount: Integer);
24 end;
25
26 var
27 AddressHistoryDM: TAddressHistoryDM;
28
29 implementation
30
31 const
32 ADDRESS_HISTORY_FILE_NAME = 'AddressHistory.xml';
33
34 {$R *.dfm}
35
36 procedure TAddressHistoryDM.ReadHistory(sl: TStrings; ReadCount: Integer);
37 var
38 FileName: string;
39 XMLDoc: IXMLDocument;
40 XMLNode: IXMLNode;
41 HistoryNode: IXMLNode;
42 i: Integer;
43 s: string;
44 begin
45
46 sl.Clear;
47 FReadCount := ReadCount;
48
49 FileName := GikoSys.GetConfigDir + ADDRESS_HISTORY_FILE_NAME;
50
51 if FileExists(FileName) then begin
52 try
53 XMLDoc := IXMLDocument.Create;
54 //XMLDoc := LoadXMLDocument(FileName);
55 LoadXMLDocument(FileName, XMLDoc);
56 try
57 XMLNode := XMLDoc.DocumentElement;
58
59 if XMLNode.NodeName = 'address' then begin
60 for i := 0 to XMLNode.ChildNodes.Count - 1 do begin
61 HistoryNode := XMLNode.ChildNodes[i];
62 if HistoryNode.NodeName = 'history' then begin
63 if FReadCount >= sl.Count then begin
64 s := Trim(HistoryNode.Attributes['url']);
65 if s <> '' then
66 sl.Add(s);
67 //sl.Add(HttpDecode(s));
68 end;
69 end;
70 end;
71 end;
72 finally
73 XMLDoc.Free;
74 end;
75 except
76 end;
77 end;
78
79 // AddressSAXHandler.OnStartDocument := SAXStartDocument;
80 // AddressSAXHandler.OnEndDocument := SAXEndDocument;
81 // AddressSAXHandler.OnStartElement := SAXStartElement;
82 // AddressSAXHandler.OnStartElement := SAXStartElement;
83 // AddressSAXHandler.OnEndElement := SAXEndElement;
84 // AddressSAXHandler.OnCharacters := SAXCharacters;
85
86 // AddressSAXReader.Vendor := 'Keith Wood';
87 // AddressSAXReader.URL := FileName;
88 // AddressSAXReader.Parse;
89 end;
90
91 procedure TAddressHistoryDM.WriteHistory(sl: TStrings; WriteCount: Integer);
92 var
93 FileName: string;
94 SaveList: TStringList;
95 i: Integer;
96 Count: Integer;
97 {
98 XMLDoc: IXMLDocument;
99 XMLNode: IXMLNode;
100 HistoryNode: IXMLNode;
101 }
102 begin
103 {
104 XMLDoc := NewXMLDocument;
105 XMLDoc.Encoding := 'Shift_JIS';
106 XMLDoc.StandAlone := 'yes';
107 XMLNode := XMLDoc.AddChild('address');
108
109 FileName := GikoSys.GetConfigDir + ADDRESS_HISTORY_FILE_NAME;
110 if sl.Count > WriteCount then
111 Count := WriteCount
112 else
113 Count := sl.Count;
114
115 for i := 0 to Count - 1 do begin
116 HistoryNode := XMLNode.AddChild('history');
117 HistoryNode.Attributes['url'] := Trim(sl[i]);
118 end;
119 XMLDoc.SaveToFile(FileName);
120 }
121 FileName := GikoSys.GetConfigDir + ADDRESS_HISTORY_FILE_NAME;
122 SaveList := TStringList.Create;
123 try
124 if sl.Count > WriteCount then
125 Count := WriteCount
126 else
127 Count := sl.Count;
128 SaveList.Add('<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>');
129 SaveList.Add('<address>');
130 for i := 0 to Count - 1 do begin
131 SaveList.Add('<history url="' + HtmlEncode(Trim(sl[i])) + '"/>');
132 end;
133 SaveList.Add('</address>');
134 SaveList.SaveToFile(FileName);
135 finally
136 SaveList.Free;
137 end;
138 end;
139
140 {procedure TAddressHistoryDM.SAXStartDocument(Sender: TObject);
141 begin
142 //
143 end;
144
145 procedure TAddressHistoryDM.SAXEndDocument(Sender: TObject);
146 begin
147 //
148 end;
149
150 procedure TAddressHistoryDM.SAXStartElement(Sender: TObject; const NamespaceURI, LocalName, QName: SAXString;
151 const Atts: IAttributes);
152 var
153 s: string;
154 begin
155 if QName = 'history' then begin
156 if FReadCount >= FList.Count then begin
157 s := Atts.getValue('url');
158 if Trim(s) <> '' then
159 FList.Add(s);
160 end;
161 end;
162 end;
163
164 procedure TAddressHistoryDM.SAXEndElement(Sender: TObject; const NamespaceURI, LocalName, QName: SAXString);
165 begin
166 //
167 end;
168
169 procedure TAddressHistoryDM.SAXCharacters(Sender: TObject; const PCh: SAXString);
170 begin
171 //
172 end;
173 }
174 end.

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26