|
このページはEtoJ逐語翻訳フィルタによって翻訳生成されました。 |
Bookmark this on Delicious
Recommend to StumbleUpon
This page is "browser friendly". Make your browser window as wide as you want it. The text will flow nicely for you. It is easier to read in a 狭くする window. With most browsers, 圧力(をかける)ing 加える, minus or 無 while the 支配(する)/統制する 重要な (ctrl) is held 負かす/撃墜する will change the texts size. (大きくする, 減ずる, 回復する to default, それぞれ.) (This is more fully explained, and there's another tip, at my 力/強力にする Browsing page.)
I apologise. This tutorial is incomplete, and when I tried to use it myself, I 設立する 欠陥s. I don't have time to 直す/買収する,八百長をする all of them just now. If you read the に引き続いて, I hope it will point you 概略で in the 権利 direction, and be of some use... but I 恐れる it must be taken with a dose of scepticism and 警告を与える.
It is NOT a 完全にする waste of space. It may 警報 you to things you need to be careful about... in particular the existance of TWO "FindFirst"/"FindNext" systems. You need to 選ぶ one, and stick to it. At least within any given 使用/適用. One uses TSearchRecord, not SearchRecord (no T) as an imporatant type. One uses "dos" in the 使用/適用's "uses" 条項; the other doesn't.
While there ARE 欠陥s in the tutorial, I do 申し込む/申し出 a 完全にする 使用/適用 written with the 援助 of the good parts of this tutorial. The 使用/適用 許すs you to "collect" a 選択 of とじ込み/提出するs from a folder. It is, 式のs, an 必須の 無作為の 選択. The 使用/適用 copies one とじ込み/提出する in "x" from the folder, the "x" 明示するd by the 使用者 at run time. So... you can collect copies of one とじ込み/提出する in 5 or one とじ込み/提出する in 500, depending on your wants. (One of my IP (機の)カムs was 始める,決める up 不正に, and by the time I noticed, I had a folder with 900,000 images in it! Windows 7, on modest 金物類/武器類, didn't 落ちる over... but Windows Explorer was "pretty" (understatement!) 不振の!!
The 使用/適用 isn't 特に 強健な, and the copied とじ込み/提出するs will be sent to C:/DE55/Keep, which must 存在する before the 使用/適用 is run. But, with care, it DOES work! AND you get the source-code too, which may be instructive, and may be a useful basis for a fancier 使用/適用... one, perhaps, to copy any image from a folder. Any image, that is, that isn't too の近くに to a scene with "nothing" 利益/興味ing in it. (To create that 使用/適用 would 要求する "trivial" adaptation of the source-code you can download. You would "just" change...
liTmp:=FindNext(srResultRecord);
if lwFilesRead mod wKeepHowOften=0 then begin
... to....
liTmp:=FindNext(srResultRecord);
if boFileIsInteresting(srResultRecord) then begin
... and 令状 the subroutine "boFileIsInteresting".
Joking aside... that really is "all" you would have to do, and the work done for you is NOT insignificant... although, of course, the 令状ing of boFileIsInteresting would not be a trivial 演習.
Oh. I suppose you'd also need something to 始める,決める up, during the 使用/適用's initialization, your 鮮明度/定義 of "利益/興味ing".
But, for what it is 価値(がある), this is the link to download DE55, the program to 収穫 a 選択 of とじ込み/提出するs from a folder. Download 含むs the Lazarus sourcecode.
A number of things conspire when you get into the realms of とじ込み/提出する 扱うing, to make it 平易な to trip up. I think part of my problems in creating this, and our problems in general, is that for those of us coming from the Delphi world... and this tutorial derived from a Delphi tutorial, things are nearlY... but not やめる... the same, when you want to read the とじ込み/提出するs on some 貯蔵 装置. Oh joy. Oh 井戸/弁護士席. (If it was 平易な, everyone would be Doing It.)
First of all, because you are interfacing closely with things mostly managed by the operating system, these parts of Lazarus may be somewhat OS 扶養家族. I can only 約束 that what I 述べる 作品 in Windows. (And even that 約束 is 支配する to the "stop 圧力(をかける)" above.
Secondly, there seem to be two VERY SIMILAR, but 相いれない "answers" out there. It this tutorial...
I am NOT using the PROCEDURE FindFirst, (type)(no T)SearchRecord), or 全世界の variable DosError which become 利用できる if you put "dos" in your 使用/適用's "uses" 条項.
I AM using the FUNCTION FindFirst, (type)TSearchRecord which are 利用できる if you have not put "dos" in your 使用/適用's "uses" 条項.
BEWARE: My page does not have all the answers. As you read other pages on these 事柄s, REMEMBER that there are the TWO, VERY SIMILAR "systems" out there to trip you up. Sigh.
This tutorial 調査するs the 準備/条項s built into Lazarus (and Delphi and Pascal) for looking at what とじ込み/提出するs and folders are on your hard disk. The same techniques 適用する to other forms of 支援 蓄える/店, for instance thumb-運動s, aka USB memory sticks.
See also "Using "FindFirst" and "FindNext" in Lazarus programming" for another tutorial 演説(する)/住所ing many of the things 演説(する)/住所d in this one.
Before we get into the 詳細(に述べる)s of looking at what is on a 貯蔵 装置, a few 準備の 発言/述べるs:
For a very long time, we have been using a system of folders, also known as directories, to 組織する what is on our 貯蔵 装置s. Any 貯蔵 装置 has a "root" folder. Within that, there can be とじ込み/提出するs and その上の folders. Within the folders-in-a-folder (aka "subdirectories", or subordinate folders) there can be とじ込み/提出するs and/ or その上の folders. ("Sub-sub-folders"!) There are 限界s to how 深く,強烈に folders can be nested, but you are ありそうもない to 攻撃する,衝突する the 限界s unless you get silly.
In the past 10年間 or so, the actual story has become somewhat more 複雑にするd because Microsoft and others decided that "事実上の folders", such as "My 文書s", would be a good idea. Happily, the 道具s we use to look what is on 貯蔵 装置s don't much care if they are pointed at a "real" folder or a 事実上の one. In the same way, 反して once upon a time, "C:" referred to a 明確な/細部 physical 貯蔵 装置, usually a disk of some type in those days, today one physical disk may be "seen" by the operating system as one or more 事実上の 運動s. But again, our folder/ とじ込み/提出する 道具s don't care.
Before I start on the 詳細(に述べる)s, I will tell you that I am not, in this essay, going to talk at all about how we look inside とじ込み/提出するs. For this essay, all we will do is learn about how you can find out what folders and とじ込み/提出するs are 現在の. We will learn about how to 診察する their せいにするs, though. (E.g. when the とじ込み/提出する was saved, what it's 拡張 is, how big it is.)
The 道具s for learning about what is on your disk are....
Apart from those basics, there 機能(する)/行事s to tell you things about a 明確な/細部 folder or とじ込み/提出する, or to change the せいにするs 記録,記録的な/記録するd for it. For instance, once you program is "pointed" at a particular とじ込み/提出する, by putting the 権利 stuff in the variable dfMyFile, you can use
showmessage(inttostr(FileSize(myFile));
("IntToStr" is a 広範囲にわたって useful 機能(する)/行事 that turns numbers into strings. Showmessage needs a string, FileSize returns a number, hence the need here for InToStr.)
If I were able to find an antique called a "typewriter", I could put 署名/調印する on a page by a rather 原始の technique. And if I typed...
1 2 3 One Two Three
The typewriter wouldn't make any distinction between the "1" and the "One", other than the fact that the latter would take three keypresses.
Very 早期に on in learning to program, you learned about data types. If you need a variable to save, say, the number of "things" in a box, that variable has to of the numeric type. But a variable to 記録,記録的な/記録する what the things in the box are, say, perhaps they are wrackspurts, (extra points if, without Google, you know what they are), then that data goes into a string type variable.
You probably already know that "numeric" and "string" are mere 部類s of data types. "Numeric", in particular, subdivides in a very tedious manner. What was wrong with what we knew from when we could say now we are six, and knew a "number" from other things? Computers. Bah.
But I digress.
I started talking about "data types" because to look at what is on your hard 運動, we need some data types you may not have come across. In one sense, of course everything in the computer is either a number, or a 始める,決める of numbers... but you will do 井戸/弁護士席 to "forget" that the contents of variables of data types like THandle are numbers. You don't really need to know what is in, say, a type THandle variable... you just need to know how to fill the variable before you need to use whatever is in it, whatever that might be. (!)
And, lastly, you need to know about 記録,記録的な/記録するs. They are a bit like a "最高の" datatype. A 記録,記録的な/記録する is a 始める,決める of variables, "gathered together" by the "魔法" of the idea of a "記録,記録的な/記録する". (It is 類似の, in some ways, to what database people mean when they speak of "a 記録,記録的な/記録する", but not 正確に/まさに the same, so if you have some knowledge of database work, be 用意が出来ている to keep two meanings for "記録,記録的な/記録する" in your 長,率いる.)
Here begins a 簡潔な/要約する 転換, for people who have not met "記録,記録的な/記録するs", as used in programming.
Suppose you had to keep 跡をつける of a small collection of 価値のある gem 石/投石するs. You might 始める,決める up the に引き続いて arrays....
負わせる[0]:= 5 Value:=5000 Color[0]:=(疑いを)晴らす 指名する[0]:=diamond 負わせる[1]:=80 Value:= 10 Color[1]:=red 指名する[1]:=garnet 負わせる[2]:=20 Value:= 200 Color[2]:=sapphire 指名する[2]:=blue etc.......
Once you had the data 蓄える/店d like that, you could 令状 a program to, say, 追加する up the value of all the 石/投石するs, 名簿(に載せる)/表(にあげる) all the red 石/投石するs, etc, etc.
But if you did any sorting, it would be a real 苦痛 to 令状 the code.
And so the "記録,記録的な/記録する" was born. You define 記録,記録的な/記録するs as follows (You also, and that's why we're going into this, use 記録,記録的な/記録するs defined by the system.)
TGem = 記録,記録的な/記録する 負わせる: integer; Value: integer; Color: string[10]; 指名する: string[15]; end;//Of 鮮明度/定義 of "TGem"
The above creates a new data type, of the "記録,記録的な/記録する" 肉親,親類d. Before I could 蓄える/店 my first 石/投石する's description in the computer, I would need a variable of "type" TGem. (I didn't have to 指名する my 記録,記録的な/記録する type "TGem", I could have called it "fred8"... but using a 指名する beginning "T" is good, to 強調する that I've made a new data type.)
I can create "ordinary" variable of type TGem, and I can create arrays, just as with "ordinary" types, like "integer".
So.... after...
var recTmpGem:TGem;
recGem:array [0..5] of TGem;
.. I can start putting "stuff" in. And I do that by either of the に引き続いて....
recTmpGem.負わせる:=5; recTmpGem.Value:=5000; recTmpGem.Color:='(疑いを)晴らす'; recTmpGem.指名する:='diamond';
...or... (達成するs same thing).
with recTmpGem do 負わせる:=5; Value:=5000; Color:='(疑いを)晴らす'; 指名する:='diamond'; end;//of "with"
So far, so boring. As bad as separate arrays.
But! Having done the above, we can now do....
recGem[0]:=recTmpGem;
THAT is as good as....
recGem[0].負わせる:=recTmpGem.負わせる; recGem[0].Value:=recTmpGem.Value; recGem[0].Color:=recTmpGem.Color; recGem[0].指名する:=recTmpGem.指名する;
... a 重要な 改良, in several ways, not just the obvious ones.
記録,記録的な/記録するs Are Good. Try them... you will like them.
To recap, in different words:
A "記録,記録的な/記録する" is a structured data type. It gathers together some variables, not always all of the same type, into something that itself behaves as if it were a data type. When you have defined (or been given) a 記録,記録的な/記録する data type, and created some variables of that type, you have a nice tidy way of 取引,協定ing with a bunch of 関係のある "things" (pieces of data).
What does this have to do with とじ込み/提出するs and folders???
For a given とじ込み/提出する, you can ask....
That data is going to be put in さまざまな variables, but they are collected up into 記録,記録的な/記録するs, to make life 平易な (really... it WILL be 平易な... once you are happy with "記録,記録的な/記録するs"!)
Two things need attention before we get to the heart of this tutorial.
One is 平易な: I spoke a moment ago of "the 指名する" of a とじ込み/提出する or folder.
The 十分な 指名する might look like....
C:\使用者s\TBoyd\文書s\aaText\ToDoList.txt
That can be broken up into....
Simple. Moving on....
A 扱う is "really" "just" a number... inside the computer. But you don't want to know what the number is. You can forget it is a number.
Don't skim the next bit. If you get it 堅固に into your brain, what follows will be a lot easier.
扱うs are used for connecting to things. Or for "しっかり掴むing them"- hence, I suppose, the 指名する!
Suppose you 手配中の,お尋ね者 to erase everything on your hard 運動. There is probably a 命令(する) for doing that. And it would probably work something like this....
var dhDriveID:TDriveHandle;
手続き WipeIt;
dhDriveID:=ConnectToDrive('C');
WipeDrive(dhDriveID);
end;
I've made up bits of a very plausible language to 令状 the above. Everything in it except "dhDriveID" and "WipeIt" would be "built into" the language (reserved 作品, or "keywords").
But, made up or not, it illustrates the use of a 扱う. Thus...
The (imaginary) system 機能(する)/行事 "ConnectToDrive" needs to know the human friendly 指名する of the 運動 you want to connect to. In the example, I've told WipeIt to connect to what we humans call "運動 C".
ConnectToDrive returns... something. We don't need to know a lot about the "something", as long as we know that it is of type TDriveHandle, and we give it a variable of type TDriveHandle to go into... as I have, in the above.
Then we come to the 命令(する) WipeDrive.
It, like "手続き" and "end" and "showmessage", etc, etc, is part of my imaginary, Lazarus-like language.
It is a 手続き, and it has a parameter. To use WipeDrive you have to give it not the human friendly 指名する of the 運動 you want to wipe, but the computer friendly とじ込み/提出する 扱う to connect to that 運動. Where do you get that? With "ConnectToDrive"!
You don't need to know the 詳細(に述べる)s of what is in dhDriveID! You just have to know how to fill it (ConnectToDrive), so that it IS filled with the 権利 stuff when you come to use it (WipeDrive).
Okay... re-read the stuff about "扱うs" if it wasn't (疑いを)晴らす, and then, at last, we get to Looking At とじ込み/提出するs And Folders....
Lazrus comes with a useful 記録,記録的な/記録する-type called TSearchRec "built in". There's also ANOTHER type, this one (不正に) 指名するd "SearchRec" (no t). It is 利用できる if you've put "dos" in your Uses 名簿(に載せる)/表(にあげる)... which you SHOULD NOT DO, if に引き続いて my advice. (If you do, other things come into the picture, 含むing, perhaps, a redefined FindFirst. We need the "基準" on... to do things "our" way. (The other way probably 作品... but you CAN'T 令状 an 使用/適用 which tries to mix elements from the two "answers".
If you 遂行する/発効させる the 手続き below, FirstFile (a word chosen by us, not a "built in" word)...
手続き TDE55f1.FirstFile;
var liTmp:longint;
srResultRecord:TSearchRec;//TSearchRec is a 基準 Lazarus type
begin
liTmp:=FindFirst('C:/*.*', faAnyFile, srResultRecord);
if liTmp=0 then
{See: http://lazarus-ccr.sourceforge.逮捕する/docs/rtl/sysutils/findfirst.html
liTmp will be 無 if there is no error ON A WINDOWS MACHINE, but
-1 if no error on a Unix-like 壇・綱領・公約. Sigh.}
showmessage('First とじ込み/提出する/folder 設立する was:'+srResultRecord.指名する)
else showmessage('No とじ込み/提出する or folder 存在するs matching those filters');
FindClose(srResultRecord);
end;
...then you will get a lot of data into the 記録,記録的な/記録する "srResultRecord". Besides FirstFile, 'C:/*.*', liTmp and srResultRecord, everything you see in the code fragment is "built in" to Lazarus and Delphi.... as long has you have 追加するd "dos" to your 使用/適用's "uses" 条項.
We'll start at the end, to get something simple out of the way: Any time you use "FindFirst", use "FindClose" once, at the end of what you were doing. Moving on...
One of the "parts" (fields) of any variable of type "TSearchRec" is "指名する". And that's a string type variable. That's why our...
showmessage('First とじ込み/提出する/folder 設立する was:'+
srResultRecord.指名する)
... 作品.
We might get the 指名する of a folder in the root of the C 運動... for the 目的s of FindFirst (and FindNext, which we will come to), folders are almost the same thing as とじ込み/提出するs.
Let's look a little more closely at...
FindFirst('C:/*.*', faAnyFile, srResultRecord);
The first parameter, we used 'C:/*.*', is a filter on the 指名する of the とじ込み/提出する or folder. With '*.*' we said, give us any とじ込み/提出する or folder. Had we said 'My*', we would have been 説 "give me the first とじ込み/提出する or folder you can find with a 指名する beginning with "My"
The second parameter, we used faAnyFile, is a filter on the sort of とじ込み/提出する or folder we want. "faAnyFile" is a system defined constant. Like 扱うs, these constants do "boil 負かす/撃墜する" to numbers, but don't try to 人物/姿/数字 out what the number might be. There are 名簿(に載せる)/表(にあげる)s, e.g. (for FindFirst and FindNext) start at http://lazarus-ccr.sourceforge.逮捕する/docs..... and if you can find the 名簿(に載せる)/表(にあげる) of what constants are 利用できる to use for different parameters, please get in touch with the URL! We could also have used, say, faReadOnly for the second parameter... that would have given us one of the read-only とじ込み/提出するs from the directory we 明示するd.
The last parameter, we used srResultRecord: A variable has to be 供給するd for the last parameter. It has to be of the system-defined type "TSearchRec" (NOT "SearchRec", which would be 権利 for the "answer" using the "dos" 部隊. Sigh.) With FindFirst, the variable doesn't need anything in it before the call of FindFirst.
Yes, but WHICH とじ込み/提出する will FindFirst give us?
Apart from knowing that the とじ込み/提出する will 尊敬(する)・点 the filters 需要・要求するd by the first two parameter, we don't know which とじ込み/提出する we will fetch. One will be grabbed "out of the hat". We will just have to 取引,協定 With It. (Which I will, later in this tutorial, show you how to do.)
What if there IS no とじ込み/提出する matching our filters?
井戸/弁護士席, the code I showed you was, of course, stripped 負かす/撃墜する. Here's something a little better, which will 取引,協定 sensibly with 事例/患者s where no とじ込み/提出する 会合,会うs the filter 必要物/必要条件s....
Don't be fooled into thinking that FindFirst only collects one bit of data, i.e. "Is there a とじ込み/提出する or folder like that?". While that bit of data is what is returned by the 機能(する)/行事, when the 機能(する)/行事 was called, さまざまな bits (the proper 称する,呼ぶ/期間/用語 is "fields") of srSearchRecord were filled in with data. ("Had values 割り当てるd").... Which bring me neatly to...
For a 包括的な answer to that, visit http://lazarus-ccr.sourceforge.逮捕する/docs....
These are some of the fields which are important to me...
BEWARE: the encoding used for the Time field 変化させるs from OS to OS... and, for one consequence, you can't do simple arithmetic with it, at least in the Windows 環境. (The value in "Time" for a new とじ込み/提出する may OR MAY NOT) be greater (or lesser) than the value for an old とじ込み/提出する. The answer is to use filedatetodatetime() to 変える ".Time" values into values encoded as TDateTime values. Sigh.
There is another very important field which is filled when you call FindFirst: the FindHandle field. There is no 推論する/理由 for you ever to look at what is in FindHandle! But!.... it needs something in it before you use FindNext. Which we are going to talk about next. You should not use what's in the field yourself... but FindNext will be using it... don't worry about using FindNext... that's 許すd!
Imagine for me that you have a hard disk connected to your operating system as "C:", and that in it's root ("C:\"), you have at least 5 とじ込み/提出するs or folders...
Given that 状況/情勢, consider...
var srResultRecord:TSearchRec;
iLoop: integer;
liTmp:LongInt;
手続き ListFive;
begin
liTmp:=FindFirst('C:\*.*', faAnyFile, srResultRecord);
if liTmp=0{and you are using Windows... use -1 for Linux}
then showmessage('First とじ込み/提出する/folder 設立する was:'+srResultRecord.指名する);
for iLoop:=1 to 4 do begin
liTmp:=FindNext('*', faAnyFile, srResultRecord);
showmessage('Next とじ込み/提出する/folder 設立する was:'+srResultRecord.指名する);
end;//"for..."
FindClose(srResultRecord);
end;//ListFive
That is a 簡単にするd illustration of how to read more than one とじ込み/提出する from the 貯蔵 装置. It doesn't を取り引きする the 可能性 that there may not be five とじ込み/提出するs or folders to read. But other than that, it is 完全にする.
公式文書,認める in particular: FindFirst doesn't need anything in srResultRecord.FindHandle. But once you have called FindFirst, as long as it returned "true", you will have something sensible in the FindHandle field. WITH something sensible in the FindHandle field, you can then call FindNext. It will, as the 指名する 示唆するs, 選ぶ up the data relating to another とじ込み/提出する or folder, and change what is in FindHandle, so that if you call FindNext again, you will get another とじ込み/提出する or folder.
"FindFirst" and "FindNext" are not the 指名するs I would have used because the とじ込み/提出する/folder 指名するs do not come out of the program above in any useful order. "FindOne" and "FindAnother" might have been better 指名するs.
You make a call of FindFirst to make a start. You then call FindNext as often as 控訴s you, to 選ぶ up the 詳細(に述べる)s of その上の とじ込み/提出するs and folders. You must then call FindClose, to "tie up" さまざまな loose ends.
Both FindFirst and FindNext are longint 機能(する)/行事s. (In Delphi, they are booleans... and there are variations on the FindFirst and FindNext 決まりきった仕事s which come into play if... against my advice!... you have "dos" in your "uses" 条項.)
Under windows, they return 無 if the 試みる/企てる to find something was successful. Under Unix-like OSs (Linux, etc), they return -1 if the 試みる/企てる to find something was successful.
FindNext won't "re-find" the thing FindFirst 設立する. FindNext won't "find" any とじ込み/提出する or folder it has 以前 設立する. (井戸/弁護士席, 設立する since the program started, or a FindClose was done.)
I'm not sure that FindFirst or FindNext will find both, or even one of these, but just in 事例/患者...
If ever you come across a folder called ".", or one called "..", 解釈する/通訳する that to mean "the folder we are "in" at the moment", or "the "parent" of the folder we are in at the moment", それぞれ.
Earlier, I 約束d to talk about how you get the とじ込み/提出するs in a 論理(学)の order... sorted by 指名する, by date, etc.
I'm afraid there's nothing for it but to fetch all of the とじ込み/提出するs which 会合,会う your 選択 基準, putting the facts about those とじ込み/提出するs in arrays, or maybe in a 覚え書き (which is an array, too, of course), and then sorting them "by 手渡す". Sorry!
After you call FindFirst or FindNext, you will have something in the Time field of the returned 記録,記録的な/記録する. It will give you the time and date of the last time the とじ込み/提出する was 修正するd.
However, beware: the encoding of date and time into an integer 変化させるs from OS to OS. And, at least under Windows, you can't use the raw ".Time" value in arithmetic. If you fetch .Time for two different とじ込み/提出するs, you can't 直接/まっすぐに, from those values, tell which とじ込み/提出する is older.
However, if you 適用する the filedatetodatetime() 機能(する)/行事 to the value returned in .Time, the result will be a TDateTime value, which is easier to work with. And Lazarus (and Delphi) have many 機能(する)/行事s and 手続きs for working with TDateTime values. (And a bigger TDateTime is always a newer (i.e. "later") TDateTime.)
The に引き続いて 機能(する)/行事s can be useful...
When you have the 十分な spec of a とじ込み/提出する, e.g.
... the に引き続いて can be useful for parsing it...
So... that's how you find out "what's there"
There are useful 決まりきった仕事s built into Lazarus and Delphi for working with とじ込み/提出するs and folders.
Working with what is inside a とじ込み/提出する is a big story for another day. (I've already done tut
In Delphi days, to "do things" to the とじ込み/提出する or folder as an unopened (独立の)存在, there were things like...
For a 名簿(に載せる)/表(にあげる) of the DELPHI subroutines...http://www.delphibasics.co.uk/ByFunction.asp?Main=とじ込み/提出するs&Sub=支配(する)/統制する
I'm not sure how many have had Lazarus 同等(の)s 供給するd.
|
|
If you visit 1&1's 場所/位置 from here, it helps me. They host my website, and I wouldn't put this link up for them if I wasn't happy with their service. They 申し込む/申し出 things for the beginner and the 会社/団体.![]()
Page 実験(する)d for 同意/服従 with INDUSTRY (not MS-only) 基準s, using the 解放する/自由な, 公然と accessible validator at validator.w3.org. Mostly passes. There were two "unknown せいにするs" in Google+ button code. Sigh.
....... P a g e . . . E n d s .....