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.2.1 - (hide 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 hi_ 1.1 unit AddressHistory;
2    
3     interface
4    
5     uses
6     SysUtils, Classes, {SAX, SAXHelpers, SAXComps, SAXKW,}
7 yoffy 1.3.2.1 GikoSystem, {XMLIntf, XMLDoc}{, HttpApp} GikoXMLDoc, YofUtils;
8 hi_ 1.1
9     type
10     TAddressHistoryDM = class(TDataModule)
11     private
12     { Private ?辿?転 }
13 yoffy 1.3.2.1 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.3.2.1
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 yoffy 1.3.2.1 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 yoffy 1.2 except
76 hi_ 1.1 end;
77     end;
78 yoffy 1.3.2.1
79 hi_ 1.1 // 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 yoffy 1.2 SaveList: TStringList;
95 hi_ 1.1 i: Integer;
96     Count: Integer;
97 yoffy 1.2 {
98 hi_ 1.1 XMLDoc: IXMLDocument;
99     XMLNode: IXMLNode;
100     HistoryNode: IXMLNode;
101 yoffy 1.2 }
102 hi_ 1.1 begin
103 yoffy 1.2 {
104 yoffy 1.3.2.1 XMLDoc := NewXMLDocument;
105 hi_ 1.1 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 yoffy 1.2 }
121     FileName := GikoSys.GetConfigDir + ADDRESS_HISTORY_FILE_NAME;
122 hi_ 1.1 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 yoffy 1.3.2.1 SaveList.Add('<history url="' + HtmlEncode(Trim(sl[i])) + '"/>');
132 hi_ 1.1 end;
133     SaveList.Add('</address>');
134     SaveList.SaveToFile(FileName);
135     finally
136     SaveList.Free;
137 yoffy 1.2 end;
138 hi_ 1.1 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