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.7 - (show annotations) (download) (as text)
Wed Dec 3 13:59:07 2003 UTC (20 years, 4 months ago) by h677
Branch: MAIN
CVS Tags: b44, b46
Changes since 1.6: +0 -6 lines
File MIME type: text/x-pascal
何も無いコンストラクタを削ってみた。

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 := LoadXMLDocument(FileName);
54 try
55 XMLNode := XMLDoc.DocumentElement;
56
57 if XMLNode.NodeName = 'address' then begin
58 for i := 0 to XMLNode.ChildNodes.Count - 1 do begin
59 HistoryNode := XMLNode.ChildNodes[i];
60 if HistoryNode.NodeName = 'history' then begin
61 if FReadCount >= sl.Count then begin
62 s := Trim(HistoryNode.Attributes['url']);
63 if s <> '' then
64 sl.Add(s);
65 //sl.Add(HttpDecode(s));
66 end;
67 end;
68 end;
69 end;
70 finally
71 XMLDoc.Free;
72 end;
73 except
74 end;
75 end;
76
77 // AddressSAXHandler.OnStartDocument := SAXStartDocument;
78 // AddressSAXHandler.OnEndDocument := SAXEndDocument;
79 // AddressSAXHandler.OnStartElement := SAXStartElement;
80 // AddressSAXHandler.OnStartElement := SAXStartElement;
81 // AddressSAXHandler.OnEndElement := SAXEndElement;
82 // AddressSAXHandler.OnCharacters := SAXCharacters;
83
84 // AddressSAXReader.Vendor := 'Keith Wood';
85 // AddressSAXReader.URL := FileName;
86 // AddressSAXReader.Parse;
87 end;
88
89 procedure TAddressHistoryDM.WriteHistory(sl: TStrings; WriteCount: Integer);
90 var
91 FileName: string;
92 SaveList: TStringList;
93 i: Integer;
94 Count: Integer;
95 {
96 XMLDoc: IXMLDocument;
97 XMLNode: IXMLNode;
98 HistoryNode: IXMLNode;
99 }
100 begin
101 {
102 XMLDoc := NewXMLDocument;
103 XMLDoc.Encoding := 'Shift_JIS';
104 XMLDoc.StandAlone := 'yes';
105 XMLNode := XMLDoc.AddChild('address');
106
107 FileName := GikoSys.GetConfigDir + ADDRESS_HISTORY_FILE_NAME;
108 if sl.Count > WriteCount then
109 Count := WriteCount
110 else
111 Count := sl.Count;
112
113 for i := 0 to Count - 1 do begin
114 HistoryNode := XMLNode.AddChild('history');
115 HistoryNode.Attributes['url'] := Trim(sl[i]);
116 end;
117 XMLDoc.SaveToFile(FileName);
118 }
119 FileName := GikoSys.GetConfigDir + ADDRESS_HISTORY_FILE_NAME;
120 SaveList := TStringList.Create;
121 try
122 if sl.Count > WriteCount then
123 Count := WriteCount
124 else
125 Count := sl.Count;
126 SaveList.Add('<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>');
127 SaveList.Add('<address>');
128 for i := 0 to Count - 1 do begin
129 SaveList.Add('<history url="' + HtmlEncode(Trim(sl[i])) + '"/>');
130 end;
131 SaveList.Add('</address>');
132 SaveList.SaveToFile(FileName);
133 finally
134 SaveList.Free;
135 end;
136 end;
137
138 {procedure TAddressHistoryDM.SAXStartDocument(Sender: TObject);
139 begin
140 //
141 end;
142
143 procedure TAddressHistoryDM.SAXEndDocument(Sender: TObject);
144 begin
145 //
146 end;
147
148 procedure TAddressHistoryDM.SAXStartElement(Sender: TObject; const NamespaceURI, LocalName, QName: SAXString;
149 const Atts: IAttributes);
150 var
151 s: string;
152 begin
153 if QName = 'history' then begin
154 if FReadCount >= FList.Count then begin
155 s := Atts.getValue('url');
156 if Trim(s) <> '' then
157 FList.Add(s);
158 end;
159 end;
160 end;
161
162 procedure TAddressHistoryDM.SAXEndElement(Sender: TObject; const NamespaceURI, LocalName, QName: SAXString);
163 begin
164 //
165 end;
166
167 procedure TAddressHistoryDM.SAXCharacters(Sender: TObject; const PCh: SAXString);
168 begin
169 //
170 end;
171 }
172 end.

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