Develop and Download Open Source Software

Browse CVS Repository

Annotation of /gikonavigoeson/gikonavi/AddressHistory.pas

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


Revision 1.7 - (hide 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 hi_ 1.1 unit AddressHistory;
2    
3     interface
4    
5     uses
6     SysUtils, Classes, {SAX, SAXHelpers, SAXComps, SAXKW,}
7 yoffy 1.4 GikoSystem, {XMLIntf, XMLDoc}{, HttpApp} GikoXMLDoc, YofUtils;
8 hi_ 1.1
9     type
10     TAddressHistoryDM = class(TDataModule)
11     private
12     { Private ?辿?転 }
13 yoffy 1.4 FReadCount: Integer;
14 hi_ 1.1
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 yoffy 1.4
46 hi_ 1.1 sl.Clear;
47     FReadCount := ReadCount;
48    
49     FileName := GikoSys.GetConfigDir + ADDRESS_HISTORY_FILE_NAME;
50    
51     if FileExists(FileName) then begin
52 yoffy 1.2 try
53     XMLDoc := LoadXMLDocument(FileName);
54 yoffy 1.6 try
55     XMLNode := XMLDoc.DocumentElement;
56 yoffy 1.2
57 yoffy 1.6 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 yoffy 1.2 except
74 hi_ 1.1 end;
75     end;
76 yoffy 1.4
77 hi_ 1.1 // 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 yoffy 1.2 SaveList: TStringList;
93 hi_ 1.1 i: Integer;
94     Count: Integer;
95 yoffy 1.2 {
96 hi_ 1.1 XMLDoc: IXMLDocument;
97     XMLNode: IXMLNode;
98     HistoryNode: IXMLNode;
99 yoffy 1.2 }
100 hi_ 1.1 begin
101 yoffy 1.2 {
102 yoffy 1.4 XMLDoc := NewXMLDocument;
103 hi_ 1.1 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 yoffy 1.2 }
119     FileName := GikoSys.GetConfigDir + ADDRESS_HISTORY_FILE_NAME;
120 hi_ 1.1 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 yoffy 1.5 SaveList.Add('<history url="' + HtmlEncode(Trim(sl[i])) + '"/>');
130 hi_ 1.1 end;
131     SaveList.Add('</address>');
132     SaveList.SaveToFile(FileName);
133     finally
134     SaveList.Free;
135 yoffy 1.2 end;
136 hi_ 1.1 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