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

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