Develop and Download Open Source Software

Browse CVS Repository

Contents of /gikonavigoeson/gikonavi/SaveFile.pas

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


Revision 1.2 - (show annotations) (download) (as text)
Sun Jun 25 15:05:21 2006 UTC (17 years, 9 months ago) by h677
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/x-pascal
FILE REMOVED
MonaUtilsの使用している関数は、GikoSystemへ
SaveFileは利用されていないので、削除

1 unit SaveFile;
2
3 interface
4 uses
5 Classes, Windows{, SysUtils, ComCtrls, IniFiles, HTTPApp, Math,
6 GikoSystem, BoardGroup, Send};
7
8 {type
9 TSaveFile = class(TObject)
10 private
11 FBoard: TBoard;
12 FThreadItem: TThreadItem;
13 FSendItem: TSendItem;
14 FHeader: TStringList;
15 FBody: TStringList;
16 FTree: TTreeView;
17 FSize: Integer;
18 function GetHeadServerDate(List: TStrings): TDateTime;
19 public
20 // procedure SaveListFile; //???鴻?????<?ゃ???絖?
21 // procedure SaveItemFile; //?≪?ゃ???????<?ゃ???絖?
22 // procedure SaveRangeItemFile; //???潟?後???≪?ゃ???????<?ゃ???絖?
23 // procedure SaveSendFile; //??篆≧??帥???<?ゃ???絖?
24 published
25 property Board: TBoard read FBoard write FBoard;
26 property ThreadItem: TThreadItem read FThreadItem write FThreadItem;
27 // property SendItem: TSendItem read FSendItem write FSendItem;
28 property Header: TStringList read FHeader write FHeader;
29 property Body: TStringList read FBody write FBody;
30 property Tree: TTreeView read FTree write FTree;
31 property Size: Integer read FSize write FSize;
32 end;
33 }
34 implementation
35 //uses
36 // Giko;
37 {procedure TSaveFile.SaveListFile;
38 var
39 i, j: Integer;
40 index: Integer;
41 wkItem: TThreadItem;
42 OldItem: TThreadItem;
43 NewItem: TThreadItem;
44 FileName: string;
45 Title: string;
46 Count: Integer;
47 ItemList: TList;
48 NewList: TList;
49 SaveCount: Integer;
50 Node: TTreeNode;
51 NoCount: Integer;
52 Loop: Integer;
53 begin
54 NewList := TList.Create;
55 try
56 //綏≦???ユ??荐??
57 Board.RoundDate := Now;
58 //?泣?若??筝????<?ゃ?????贋?井???肢┃絎?
59 Board.LastModified := GetHeadServerDate(Header);
60
61 //???鴻??篆?絖?篁倶?医??
62 SaveCount := Board.ListCount;
63 if SaveCount = -1 then
64 SaveCount := MaxInt;
65
66 //?ゃ?????鴻?????????亥?<???≪?ゃ??????????/span>
67 for i := Board.Count - 1 downto 0 do
68 if not Board.Items[i].IsLogFile then
69 Board.Delete(i);
70
71 //?違???????鴻????篏?????????
72 //?違???????鴻??????????鴻???????違?????????????????違???????鴻????申????
73 //?ゃ?????違?????????違???違?????鴻???????吾?с??????篏?????
74 Loop := Min(Body.Count, SaveCount);
75 NoCount := 0;
76 for i := 0 to Loop - 1 do begin
77 inc(NoCount);
78 GikoSys.DivideSubject(Body[i], FileName, Title, Count);
79
80 index := Board.GetIndex(FileName);
81 if index = -1 then begin
82 NewItem := TThreadItem.Create;
83 NewItem.FileName := FileName;
84 NewItem.Title := Title;
85 NewItem.Count := Count;
86 NewItem.ParentBoard := Board;
87 NewItem.No := NoCount;
88 NewList.Add(NewItem);
89 end else begin
90 Board.Items[index].Count := Count;
91 Board.Items[index].No := NoCount;
92 NewList.Add(Board.Items[index]);
93 Board.DeleteList(index);
94 end;
95 end;
96
97 //?違???????鴻?????<???c???ゃ?????井?????≪?ゃ???????違???????鴻????申??
98 for i := 0 to Board.Count - 1 do begin
99 inc(NoCount);
100 Board.Items[i].No := NoCount;
101 NewList.Add(Board.Items[i]);
102 end;
103
104 //?ゃ?????鴻????羔???鐚????鴻?????帥???鴻???????吾?с????????????????鐚?
105 for i := Board.Count - 1 downto 0 do
106 Board.DeleteList(i);
107
108 //?違???????鴻???????若???????吾?с??????申??
109 for i := 0 to NewList.Count - 1 do
110 Board.Add(TThreadItem(NewList[i]));
111
112 //???鴻??(subject.txt)??篆?絖?
113 GikoSys.ForceDirectoriesEx(GikoSys.GetLogDir + Board.BBSID);
114 Body.SaveToFile(GikoSys.GetSubjectFileName(Board.BBSID));
115
116 GikoSys.ExitWrite.Add(Board.BBSID);
117 finally
118 NewList.Free;
119 end;
120
121 end;}
122
123 {procedure TSaveFile.SaveItemFile;
124 var
125 // Node: TTreeNode;
126 // fNode: TTreeNode;
127 Cnt: Integer;
128 begin
129 Body.SaveToFile(GikoSys.GetThreadFileName(ThreadItem.ParentBoard.BBSID, ThreadItem.FileName));
130
131 ThreadItem.RoundDate := Now;
132 ThreadItem.Size := Size;
133 ThreadItem.LastModified := GetHeadServerDate(Header);
134 ThreadItem.Count := Body.Count;
135 ThreadItem.IsLogFile := True;
136 ThreadItem.NewReceive := 0;
137 // ThreadItem.NonRead := True;
138
139 if ThreadItem.RoundNo = 6 then
140 ThreadItem.RoundNo := 0;
141
142 GikoSys.ExitWrite.Add(ThreadItem.ParentBoard.BBSID);
143 end;}
144
145 {procedure TSaveFile.SaveRangeItemFile;
146 var
147 wkBody: TStringList;
148 Node: TTreeNode;
149 fNode: TTreeNode;
150 Cnt: Integer;
151 OldCnt: Integer;
152 begin
153 if FileExists(GikoSys.GetThreadFileName(ThreadItem.ParentBoard.BBSID, ThreadItem.FileName)) then begin
154 wkBody := TStringList.Create;
155 try
156 wkBody.LoadFromFile(GikoSys.GetThreadFileName(ThreadItem.ParentBoard.BBSID, ThreadItem.FileName));
157 wkBody.AddStrings(Body);
158 wkBody.SaveToFile(GikoSys.GetThreadFileName(ThreadItem.ParentBoard.BBSID, ThreadItem.FileName));
159 finally
160 wkBody.Free;
161 end;
162 end else begin
163 Body.SaveToFile(GikoSys.GetThreadFileName(ThreadItem.ParentBoard.BBSID, ThreadItem.FileName));
164 end;
165
166 OldCnt := ThreadItem.Count;
167
168 ThreadItem.RoundDate := Now;
169 ThreadItem.Size := ThreadItem.Size + Size;
170 ThreadItem.LastModified := GetHeadServerDate(Header);
171 ThreadItem.Count := ThreadItem.Count + Body.Count;
172 ThreadItem.IsLogFile := True;
173 ThreadItem.NewReceive := OldCnt + 1;
174 // ThreadItem.NonRead := True;
175 if ThreadItem.RoundNo = 6 then
176 ThreadItem.RoundNo := 0;
177
178 GikoSys.ExitWrite.Add(ThreadItem.ParentBoard.BBSID);
179 end;}
180
181 {function TSaveFile.GetHeadServerDate(List: TStrings): TDateTime;
182 var
183 i: Integer;
184 DateStr: string;
185 begin
186 DateStr := '';
187 for i := 0 to List.Count - 1 do begin
188 if Pos('Date: ', List.Strings[i]) <> 0 then begin
189 DateStr := StringReplace(List.Strings[i], 'Date: ', '', [rfReplaceAll]);
190 Break;
191 end;
192 end;
193 // Result := GikoSys.RFC1123ToDate(DateStr);
194 Result := ParseDate(DateStr);
195 end;}
196
197 {procedure TSaveFile.SaveSendFile;
198 var
199 sDate: string;
200 ini: TMemIniFile;
201 begin
202 ini := TMemIniFile.Create(GikoSys.GetSentFileName);
203 try
204 sDate := SendItem.StrSendDate;
205 if Trim(sDate) = '' then
206 sDate := GikoSys.Get2chDate(Now);
207
208 ini.WriteString(sDate, 'Title', SendItem.Title);
209 ini.WriteString(sDate, 'Name', SendItem.Name);
210 ini.WriteString(sDate, 'EMail', SendItem.EMail);
211 ini.WriteString(sDate, 'Body', HttpEncode(SendItem.Body));
212 ini.WriteInteger(sDate, 'Status', SendItem.StatusCode);
213 ini.WriteDateTime(sDate, 'Date', SendItem.SendDate);
214 ini.WriteString(sDate, 'BBS', SendItem.ThreadItem.ParentBoard.BBSID);
215 ini.WriteString(sDate, 'Key', ChangeFileExt(SendItem.ThreadItem.FileName, ''));
216
217 ini.UpdateFile;
218 finally
219 ini.Free;
220 end;
221 end;
222 }
223 end.

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