スポンサーサイト
category: -

一定期間更新がないため広告を表示しています

-, -, -,このエントリーを含むはてなブックマーク
Excelのリストボックスにデータが表示されなくなるのを復旧してみた。。。。INDIRECT関数?
category: 仕事ネタ

ハマったので

そして
ぐぐってみたけどなかなか解決策がみつからなかったので
俺の遭遇した件について解決に至ったところをまとめてみました。

おんなじ事象で悩んでる方のために
なにより自分への備忘録として

 
続きを読む >>
comments(0), trackbacks(0), -,このエントリーを含むはてなブックマーク
俺がソフトウェア技術者であり続けたいと思う理由
category: 仕事ネタ
自分の今の立場とはちょっと違うかもしれないけど....ちょっと共感...

404 Blog Not Found:私がソフトウェア技術者でもありつづける理由

しかし
これを正面きっていっちゃうと
「社蓄」とか「ブラック」とかいう輩が湧いてでるんだよな(笑)



俺はいまでこそ「プログラマー」はあまりやってないんだけど....

年齢・キャリアからして給料に見合わないとか
そもそも「プログラミング」案件自体がこの世情で少なくなってるってもあるんだが

それでもつい最近までソフトウェア技術者であったし
いまでもそのつもりではある.....

これまで修羅場も体験してきたし決してその仕事量に比して報酬は多くはなかったけども
やめたいって思ったことはなかったなぁ

>「自分に報いる」

これすごくわかる。
別に名誉が与えられるってわけともちょっと違う。

なんというか「普段の仕事」が常に「探求」であったしそれが実は「自分で自分を報いてた」んだと思う。
いまでもそうだけど

俺はプログラマー駆け出しのころから
どちらかといえば基幹系というかビジネスロジック系なところに携わってて
UI的な見た目派手なところは少な目だったんです....
まぁそれこそ >「便所掃除」 だったのかな(笑)

加えて OSとかセキュリティとかパフォーマンス管理とか...さらにはバックアップから(実際にオープンリールをセットしたり)
プログラマーがやらない(やりたくない)ところを担当してました。

これだけみると「便利や」さんだし傍からみると「かわいそう」とすら見えるかもしれない(派手じゃないからねw)

でもそのときに自然に身についた知識、いや、なんというか...「感」みたいなもの?
例えばトラブルに見舞われたときは回答への道が開けてくるみたいなところ。
あと
お客さんに相談されたこと....必ずしもUIロジックだけじゃなくてさらにはシステムとは関係ない業務フローみたいな問題でも

「いっちょ取り組んでやろうじゃないか」 

みたいなモチベーションを持てるところとか
そんな「仕事力」を身につけられたことは大きかったと思う。

おかげでこのIT不況下、同僚のプログラマーがどんどん「廃業」していくなかで
なんとか....この俺が必要とされてる.....という状況があります。
とってもありがたいことなんですが。

そう、この仕事は「報酬」以上に「自分が報われている」んです。
だって今の自分のアイデンティティ:存在意義であるんですから。

もちろんそんな風に思える「仕事」ってのはこの業界に限ったことじゃないけれども....

毎日が常「探求」な生活をおくりつづけることができているのは
やはり幸せなのかもしれません。


JUGEMテーマ:IT事情
 
comments(0), trackbacks(0), -,このエントリーを含むはてなブックマーク
心に i を...ライブラリーサイズの一覧を自作してみた
category: 仕事ネタ
System i (AS/400....っていいたいなぁ笑)でライブラリーサイズの一覧をつくってみた。
もちろん有料アプリはあるのだけども...
稼働に2時間以上かかるもので....もっとパフォーマンスいいものを作ってみようとしたんです。

これ、同じものを数年前に実際に作ったんだけどね。
でも....わずか5,6年の間の技術革新的なこと思い知らされたりして(笑)

して

ロジックの概要は以下のとおり...

1.システム内の全ライブラリー一覧を作成
  dspobjd  obj(qsys/*all) objtype(*lib) output(*outfile) outfile(qtemp/lib)

2.ライブラリーの中の全オブジェクトの一覧を作成
   ライブラリー一覧を読んでその各ライブラリーにつき全オブジェクトの一覧を作成する。
  dspobjd obj(&odobnm/*all) objtype(*all) output(*outfile) outfile(qtemp/obj)
    &odobnm:ライブラリー名・・・qtemp/libのフィールド名

3. 各オブジェクトのオブジェクトサイズの算出
  rtvobjd obj(ライブラリー/オブジェクト) objtype(オブジェクトタイプ) size(オブジェクトサイズ)
  ライブラリー、オブジェクト、オブジェクトタイプはqtemp/objより値を取得
  オブジェクトサイズに値が返る

4. 全オブジェクトのオブジェクトサイズを加算
  ライブラリーそのもののサイズも加算

ここで3のrtvobjdは余計だと思うかもしれません。
dspobjdの取得値にオブジェクトサイズがあるから....
しかしこのdspobjdで取得できる値は使いものにならないんですね。

10 桁しかないから。
つまり10ギガバイト以上のオブジェクトがある場合上が端折られてしまう。

前に作ったときはこれに気づかなかったのでdspobjdのサイズを使用してたのだけど今の時代ギガクラスのオブジェクトは珍しくない。....はぁ....6年前は全部で200Gぐらいだったもんね〜

しょうがないのでrtvobjdのsizeパラメータを使用することにしました。
でもね、なぜかrtvobjdのsizeは15桁。
dspobjd のコマンドが昔からアップグレードされてないのか?ある種バグかもしれない。

あと....どうも気持ち悪いところ...パフォーマンス的に

ループ処理が2重なところ...加えてCLでループさせてしまうのがくやしかったり....

CL プログラムのループ処理は際限なく遅いのだけども 
rcvf→gotoのくり返しは避けたいところだが繰り返す処理がdspobjd発行なので2の処理はCLで作成することにしました。
そ の次のループが少し時間がかかるのでこの部分ではパフォーマンス的にもあまり影響ないかと思われます。

4の加算処理はrpgの loop処理で作成。
ここはただqtemp/objのデータ分ひたすら加算するだけなのでパフォーマンスが命
ただ し上記の理由でrtvobjdを実行する必要があったのでCLをcallすることにしました。

dspobjd実行時とrtvobjd実行時にタイムラグがあるとオブジェクトがなくなってたり(!)
特にqusrsysの中 のオブジェクト...詳しくしらべてないけどそういやテンポラリな動作もあったような気がします。

したがってmonmsgでエラー時処理を追加したいところでなんだけども
とりあえずパフォーマンス重視でサイズを0にするぐらいにしました。

んでもって...
処理時間は市販のツールとあまりかわらないかな〜(苦笑)

以下ソース...


続きを読む >>
comments(0), trackbacks(0), -,このエントリーを含むはてなブックマーク
BRMSバックアップ : SEQNBR *ENDのときでも
category: 仕事ネタ
 AS/400におけるバックアップソリューション、BRMS(Backup,Recovery and Media Services)で管理されているテープでバックアップをとるときの話…

通常のバックアップ、SAVLIBとかSAVOBJコマンドのSEQNBRオプションでは*ENDがデフォルトです。
これはテープの中にライブラリーなりオブジェクトなりがすでにバックアップをとられている場合はその一番後に追加で書き込まれるという指定です。

ところが、BRMSに登録されているテープ(VOL名がBRMSに登録してある)の場合、BRMSの管理で「満了」操作をした場合、*ENDが効かなくて一番最初から書き込まれてしまうという…もちろん前に書き込まれたデータは消去。

今回初めて気づきました。

でも、これちょっと不思議ですよね?

というのは…

SAVLIBBRMとかSAVOBJBRMといったBRMを使用したコマンドだったらBRMS管理機能と連動されてても全く不思議ではないのですが、
SAVLIB等昔からあるネイティブな汎用コマンドにすらBRMSが影響を及ぼしているってところ。
BRMSライセンスはネイティブプロダクトも書き換えてるってこと?

確かに初期化コマンドINZTAPは満了してないと不可能だったな〜。
う〜む勉強になった。

そもそも「満了」にしなければよかったんですけどね(笑)
俺が「満了」という概念を取り違えてたってのもあるんですが。
「満了」=管理で一切使用できない設定をはずす、テープを使用できるようにリリースする。
って意味だと思ってたのですが
「初期化できるようにする」ぐらいの意味だったみたいです。
つまり「満了」ステータスにしなくても追記でバックアップは可能だったということです。

数少ない(笑)AS/400のTipsとして備忘カキコ♪
comments(0), trackbacks(0), -,このエントリーを含むはてなブックマーク
IBM i 最新情報・勉強会 冬
category: 仕事ネタ
AS/400も遠くになりにけり〜だなぁ〜

IBMさんがPower7をうけてーののPower Systemsをぶつけてきましたが
そんなホットななかで...いってきました。

IBM i 最新情報・勉強会 冬



http://journal.mycom.co.jp/news/2010/02/09/051/index.html

目当ての「セキュリティとIBM i最新動向」はわずか一時間あまりで多少わからない点もあったのですが(苦笑)

余談ですがラストの講演、V社のF部長とは何年か前に仕事をご一緒したこともあり、思わぬ再会でなつかしさもあり♪ AS/400つながりの世界は狭いもんですね(笑)


さて、IBMの最新プロセッサーPower7搭載のサーバーが発表となりました。
Small構成のPower750、755、medium構成のPower770,ハイエンドのPower780
機種的にはAS/400とかUnix機であるRS/6000とかの最新型です。



Power7というプロセッサは現時点最強なんじゃないかな?!って思いました。
だってそのスペック...

搭載コア数が8までいける!
前モデルのPower6に比べてクロックレートは落とされてますがL3cacheオンチップeDRAMにより全体最適化で20〜40%パフォーマンス向上を実現しているそうです(!)

でもね

Power SystemってAS/400とPがハード的には統合されてしまって
世間的にはAIX(Unix)がメジャーなのでIBM i (いわゆるOS/400)の影が薄くなってきているような気がしてて...AS技術者としては気が気でないのも正直なところ(笑)

これからの「AS/400」はどういう道を歩んでいくのか?
ってのが一番知りたかったことなんだよね。

でも、「商売上の事情」なのかIBMさんはそこのところはっきりしないんだよな〜。
大々的に「IBM i 」をアピールしてないところとか...

「世界最強のUnixマシン」
を謳ってますけど...PowerSystem
でもその性能を最も発揮するのは「i」だと感じるのだけども...

「ベストが必ずしもスタンダードにならない」の法則はほんと悔しいね〜

AS/400...正確にはiSeries(時系列的に)のもっとも得意とする「仮想化」は
この新しいPower 7xxシリーズでよりパワーアップしてるもよう。
ハイエンドの780においては最大640のLPar(論理区画)が可能...ってすごすぎ!
つまりですね...一台のサーバーで640台のサーバーが仮想的に可能だってことなんですよ!

その区画ひとつひとつ別のOSの共存も可能で、OSも i はもちろんAIX,Unixも!
いろんなOSが可能なんです。
さらにこの区画ごとのOS環境は完全にセキュアで脆弱性(AIX、Linuxは i に遠くおよばない)も他区画環境に影響を及ばさないんだって...

ちなみにSmall構成のPower 755は IBM i はサポートしてなくてAIXのみ。
でもこの機種はHPC用、つまり科学技術計算仕様。
この筐体は6台重ねるとBlueGeneに相当するそうです...これすごいですよね!

この講演をきいて、

じゃあAS/400はどこにいくのだろうか?

って疑問、さらにわからなくなりました。
「仮想化」だって
PだってLParきれるし
i の特性がどこなのかってこと、これをもっとアピールしてもらいたいって思うわけです。

ハード的には、このクラスで最強! な Power System
プロセッサも最強 Power7

AS/400は最強になるはずなんだけどな...

といろいろ複雑な思いを抱いたこのセミナーでした(笑)


JUGEMテーマ:IT事情
 
comments(0), trackbacks(0), -,このエントリーを含むはてなブックマーク
発想の転換...0e0f問題に取り組んでみたり
category: 仕事ネタ
たまにはまじめな話題を。これを楽しみにしている方もいるとかいないとか(笑)

さて.....

AS/400のスプール(印刷帳票など)やプレーンテキストをwindowsマシンにダウンロードすると桁ずれに悩まされるのが常。
これまではひとつひとつ手で直してたのですが、このたびあまりにページが多いので自動で直すことに挑戦。

なぜ桁ずれをおこすかっていえば...

これはEBCDIC→ASCIIに変換される際にシフト文字'0E0F'がnullになってしまうのでその分文字が詰められてしまうからです。

ではこれ、どういうふうに直すかっていうと

一番スマートなのは
ダウンロード後のテキストで2バイト文字(全角文字)と1バイト文字(半角文字)が接する場所に半角スペースを挿入する
ってことになるんでしょうけど
これはパターンとしてはわかりやすいですがロジック、正規表現的に困難でしょう。

おもしろそうなのでちょっと挑戦してみましたが...まぁ無理でした。

ということでAS/400上で処理しないといけなくなるわけですが

通常思いつくことといえば
シフト文字を半角スペースに置き換える
ってことですよね。(X'0E'、X'OF'→X'40')

しかしながらこうしちゃうと全角文字がそのものの文字として認識されなくなってしまう。
つまり文字化けしてしまいます。
0E0Fはダウンロードの変換でもちゃんと役割を果たしてるってことなんでしょうね。

となると
0E0Fはそのままで半角スペースを追加する。

つまり 「_0e全角文字0f_」って形にするってことです。

今回これをRPGで作成してみました。フリーソフトはいっぱいでてるけどインストールしてはだめな環境なんです。だから自作。
一行を1バイトサイズの配列に代入して分解し再度配列をくっつけるって作業です。

ここで問題になるのがスペースの扱い。
そう
CATでの文字列操作ではスペースは残せないんです。自動でつめてしまう...
B CAT A:0
でBの最後がスペースだった場合、そのスペースを削除してAがついてしまうんですね。

さて、どうするか...
俺の貧弱な発想ですが....スペースをすべて違う文字に置き換える...'_'とか。
ただしこれ、注意するべきなのは元データに絶対にでてこない「禁則文字」じゃないといけないということ。
こればかりはそれぞれのケースによります。

これでうまくいくだろ
と思ったんだけど...もう一押必要でした。

それは全角スペース。
全角スペースもX'4040'ですから'_'に置き換わってしまいます。
全角文字列の途中に0E0Fがない状況で半角が突然挿入されるとそこが文字化けしてしまうんで
後でX'4040'に変換しても文字化けのままになっちゃうと。

ってことで全角文字列のなかのスペースは変換しないってロジックも追加ですね。
そして全角スペースその文字のときはなにもしないで次の文字がでたときに2バイトあけてくっつけるって技を使います。
ただし、今回はスペースは絶対に一文字までなのが確実だったんだけど、2文字以上続く場合はもうちょっと考慮必要かな?

条件をまとめると
1.X'0E'の場合前に'_'を追加
2.X'0F'の場合後に'_'を追加
3.X'40'の場合、全角文字列中ならそのまま、それ以外なら'_'に置き換える。
4.上記以外の場合はそのまま

変換部分のロジックはこんな感じ
これを1行の最大バイト数(半角文字数)分繰り返します。


      C                        SELEC                           
      C           ARRY1,X   WHEQ X'0E'                      
      C                        SETON                         79
      C           P198DT    CAT  '_':0     P198DT           
      C           P198DT    CAT  ARRY1,X:0 P198DT           

      C           ARRY1,X   WHEQ X'0F'                      
      C                         SETOF                         79
      C  N78   P198DT    CAT  ARRY1,X:0 P198DT           
      C   78     P198DT    CAT  ARRY1,X:2 P198DT           
      C            P198DT    CAT  '_':0     P198DT           
      C   78                   SETOF                         78

      C           ARRY1,X   WHEQ X'40'                      
      C  N79     P198DT    CAT  '_':0     P198DT           
      C   79                  SETON                         78

      C                         OTHER                          
      C  N78     P198DT    CAT  ARRY1,X:0 P198DT          
      C   78      P198DT    CAT  ARRY1,X:2 P198DT          
      C   78                   SETOF                         78
      C                        ENDSL                          

あとはダウンロードしてExcelかなんかで開いて'_'を半角スペースに置き換えるとおっけ。

最後の変換もRPGでやんないの?っていわれそうですが....
XLATEの要素の文字数足んないもんで....
X'6D':X'40'が長すぎて書けない(笑)
それに2バイト文字中にX'6D'が混じってるとそこも変換されてしまうし...
だけどExcelの変換だと'_'とキャラクターそのもので指定、認識できるからね。

ILE RPGでやればもうちょっとスマートにできるかもね。
comments(0), trackbacks(0), -,このエントリーを含むはてなブックマーク
5026と5035の葛藤....まぁ文字化けです
category: 仕事ネタ
愛すべき同志、 IBM i いや、AS/400 engineers におくります...永遠のテーマ
それは「文字化け」...はぁ....(^^;

今回は、
監査ジャーナルをファイル(PF)におとして細工して最終的にPCのテキストにするって課題です。

ASのSYSVALのCCSIDは65535デフォなんで
まぁ英語小文字が文字化けしちゃってそれをなんとかしろってオファーでした。

65535&バリバリ日本語環境なんで英小文字なんて入れられないけど
どうやったらAUDJRNに英小文字を入れられるんだ?
ってそっちの方に興味があるんだが(笑)、少なくともIFSのパスとかWeb系だとありえるか...

結論は決定的で...CCSID 5035(日本語英語)に統一する...んだよね?(笑)

んで...ひとつづつ片付けると

1.監査ジャーナルの稼動...これはいじりようがない...65535で

2.QAUDJRNをファイルにおとす(TYPE5で CPYAUDJRNE)...これはCHGJOB CCSID(5035)

3.QUERYで加工
5035の環境で編集。つまりタイトル部分とかを英小文字が表示されてる状態でカナ半角を入力
これで英小文字とカナ半角が同居できます。

4.QUERYの実行
ここからが選択パターンによっていろいろ(笑)

まず、CCSIDを5035にした場合。
カナ半角と英小文字、文字化けしません。

んで
5. PCにダウンロード
そのままでは残念なことになります。
エミュレータの「設定」→「変換テーブルの設定」→「ユーザー定義」→「ホストコードページ」を1027(日本語英数小文字拡張)
これでAS上の表示と同じになります。

ただ問題なのは
計算機能設定での「カウント」(これのみ 爆)...この半角カナが
どうしても文字化けします。

なんとかこの「カウント」って文字を他にあわせようとしたんですけど
唯一できたのが

4のQUERY実行でCCSIDを5026(日本語カタカナ)に変更すると
タイトルとデータと「カウント」が文字化けしません。みんなちゃんと表示されます。

ただしエミュレータ画面のみ
それもエミュレータはホストコードページを939(日本語英小文字拡張)に変更して
AS上でCHGJOB CCSID(5035)実行したのちの場合ですが...

こんなのやってられないよね(笑)...お客さんは..OTZ

で、この状態のをPCダウンロードすると
すべて文字化け(笑)

結局5035&1027で半角カナ「カウント」は捨てることとなりました。
つまり、実行ジョブのCCSIDが5035でもQUERYの固定文字は5026から持ってきてる
って結論です。

まぁこれはロチェスターに相談しないと解決しない(爆)
ちょっとミネソタまで飛んでくる!
って言えればいいんだけど(笑)

...でも悔しいよね〜(´д⊂)

ここまでややこしいのは

AS/400ってEBCDICなんで
カナ半角と英小文字をあまってるアドレスにセットしてるからなんですね。

だったら。。5035にSYSVAL変えちゃえばいいじゃん?

って思うけど
過去データが5035じゃ全部文字ばけしちゃうんです。
つまり変更できない....



comments(0), trackbacks(0), -,このエントリーを含むはてなブックマーク
Excel VBAで正規表現が使えたんだ!
category: 仕事ネタ
 知らなかった....
ならば使ってみるしかないっしょ!

今回のお題は、テキストのある文字列が出現する行の全単語をexcelに書いていくというもの。
そのテキストはほぼ固定位置なんだけど、スペースの部分を”,"で区切って
Splitで抽出する...ってこと。

つまりスペースを","に置き換えるためにRegExpを利用する。
もちろん正規表現を使わなくてもできるんだけど、
正規表現を使うと楽なんだよね♪ かっこいいし(笑)

しかし、正規表現を使うためには前準備が必要です。

以下の手順でライブラリを導入します。

VB Editorでツール→参照設定→Microsoft VBScript Regular Expressions 5.5にチェック

RegExp

そしてロジック...

まず、あるキーワードが出現する行を見つけ出すために
そのキーワードを抽出したい。
ここでは固定文字「ABC」と続く不特定の4文字とします。

抽出するというのはExecuteらしい。

まず、定義。

Dim re as RegExp
Dim mc as MatchCollection
Dim m as Match

そしてロジック.
抽出の場合

re.Pattern = "ABC[¥w¥d]{4}"
If re.Test(buf) =True then
   Set mc =re.Execute(buf)
   Set m =mc.Item(0)
   worksheets("sheet1").cells(linCnt,1)=m.Value
End If

Patternのとこに正規表現を記述します。ちなみにABC+アルファベットか数字4桁という意味ね。

次にスペース部分の処理なんだけど、
頭のスペース何個かは削除して、間のスペースを","に置き換えるとしたかった...

ところが、「先頭のスペース(1個以上)」という意味で
"^[¥s]+"
としたんだけどこれがまたマッチしない...どうして??...これは未解決。

あとReplaceですけどどうやら先頭からひとつしか置き換えてくれないらしい。

ってことでこうなりました。

re.Pattern="[¥s]+"
buf=re.Replace(buf,"")

Do
     If re.Test(buf)=True Then
           buf=re.Replace(buf,",")
     Else
           Exit Do
     End If
Loop

ちなみにExcelへの記述は

tmp=Split(buf,",")

For i=0 To UBound(tmp)
      worksheets("sheet1").cells(linCnt,i+2)=tmp(i)
next i

ね。蛇足ですが...

う〜ん...RegExpってクールだなぁ....



comments(0), trackbacks(0), -,このエントリーを含むはてなブックマーク
Outlookの復活のさせかたのひとつ
category: 仕事ネタ
 もしくは完全削除の方法(爆)

なんでマイクロソフトは変態なんだろ

Outlookでメールを作成するとき(新規作成)
「メッセージング インターフェースによって原因不明のエラーが返されました」
というなんともなげやりなメッセージが発生した。

そして 「ツール」→「電子メールアカウント」をクリックすると
「レジストリまたはインストールに問題があるため操作は失敗しました」
などという「お前が悪い」といわんばかりの超失礼なメッセージがでる...

明らかにアカウントが壊れてるな...ってエラーが発生する場合の対処方法です。
ちなみにPop/SMTPじゃなくてExchangeサーバー設定もの。
よりややこしな状況です。

上記のメッセージはぐぐればおどろくほどたくさんでてくるけど(ほんとMSって...バカですか?)
「送信アカウント」が起因のケースでかつ完全な対応方法が全くなかったので
MSのサイトではこれまた変態な日本語訳で....orz 要領を得ない...

俺の解決方法を...ご笑納いただければ。

1.Officeを全アンインストール
 コンパネから。
 でもこれで安心してはいけない。
 再インストールしても全然解決しません。ハァ

2.¥¥Document and Setting¥(ユーザー)¥Apprication Data¥Microsoft¥outlook
  のフォルダーを削除

3.¥¥Document and Setting¥(ユーザー)¥Local Setting¥Apprication Data¥Microsoft¥outlook
 のフォルダーを削除

ここまでやって再インストでもまだだめです...ほんと変態です(笑)
さらに

4.officeを再インストール

5.メールのプロファイルを削除
 コンパネ → メールからプロファイルを削除します。
 Exchangeサーバーでもご安心を。サーバー側は影響ナッシング。
 あくまでもPC側のプロファイルですから(笑)

6.outlookをクリックすると設定ウィザードが立ち上がるので再設定

ってちょっと待て!!!

なんで1のアンインストールで全部消してくれんのだよっ!
それも2つも設定もってるし..アカウント情報は消えないし...
ほんと変態だよな〜(苦笑)

仕事だからしようがなく使ったんだけどな....

そんな変態さんとはいいかげんおさらばしたい

comments(2), trackbacks(1), -,このエントリーを含むはてなブックマーク
NotなときはOrとAndつれないのはどっち?
category: 仕事ネタ
 最初に断っとくがもちろんわかってて書いてますよ...形式的には....

だが、どうもモヤモヤしてんだよね〜。いまでも。実務上では時々わからなくなること。ある意味俺的「単純にして永遠のテーマ」

Not...Or かNot...Andについてなんだが。

たとえば
とあるお嬢さんの結婚相手の条件が....

IF youshi ="イケメン" and shunyu = "セレブ" and chino = "天才" then

IF youshi ="イケメン" or  shunyu = "セレブ" or chino = "天才" then
だと

後者の「or」の方が寛容な女性なのは明白。だってthenのなかに入れる確率が3倍になるんだから。elseに入るのはかなり悲惨といえる。

さて、これがですね〜Notつまり逆説的に語るとややこしくなると思うんだ。

以下は限りなく近いことを別の言い方に置き換えたとしたら、つまり「じゃない」で語ると

IF youshi <>"ブサメン" and shunyu <> "びんぼー" and chino <> "あほ" then

IF youshi <>"ブサメン" or shunyu <> "びんぼー" or chino <> "あほ" then
となるんだが....

え?どっち?ってならない?

つまり、例えば俺が「ブサメン」だけど「天才」だったら前者の彼女とは結婚できる。
だけど後者の彼女にはふられるわけです。
つまり「or」の方が「つれない女」ってこと。

前者は「ブサメン」でありかつ「びんぼー」でありかつ「あほ」な、どーしよーもないひとはゴメンナサイ...でもそこそこ「稼いでる」んだったら考えてもいいよ♪
 ってことで
後者は少しでも「ブサメン」または「びんぼー」または「あほ」だったら絶対ムリ!
ってこと。

追記:
あれ? ↑違うな。
ほんとは、thenのあとは「結婚できない」としたかったんだ...actionも否定ということで。
だけどthenを肯定的に「結婚できる」ってしてしまうと日本語自体が(常識的に考えて)
意味わかんなくなるな(笑)つれないどうのの以前に。
あってるかな?(笑)
ご指摘くださった方ありがとうございます(^^;

これが俺はいまだに迷うんだ...あ、「ブサメン」とかはあくまでも例で...そこじゃないよ(笑)

でもね、ロジックだったらここまで以上の条件付けはやらない。
俺はNot条件がきたら入れ子にしてしまうんですが。面倒くさいんで。

だが、たまたまi5のQuery/400のメニューからつくるqueryで上記のようなのをやったんです。
ロジックのように入れ子という逃げ方ができないんです。

だけど、↑ まではよし。なんとか...

ここで「キモくない」ってのを「ブサメンじゃない」のをセットする場合、
つまり「キモくないひとでブサメンじゃない」ってすると
         youshi     *ne  "ブサメン"
and   seikaku   *ne  "キモい"
or      ・・・

ってなって、つまりですね〜 and と orが混在しつつ
その位置はそこじゃないといけないのか? とか
どうなってるの?って。

なんかquery/400では
or がひとつのグループつくってるみたいです。でも and をorにするとまた結果が違ってきます。
つまりor〜orのなかで条件を重ねることができるってことですか!

ほんと、「=」だったら問題ないんだけどね。ネガティブなときはorはつれないですね(笑)


comments(0), trackbacks(0), -,このエントリーを含むはてなブックマーク
New Entry.
Category.
Archives.
Comment.
  • 7.29 エコ怪獣 @渋谷WOMB 〜 KKL14 エリィ生誕
    おとかむ (07/30)
  • 試練 もしくは チャンス? 〜 12.01 ユナイテッドモンモンサン @渋谷チェルシーホテル
    lucky (12/05)
  • 絶対オイシかったって! 〜 11.14 URBANフェチ @下北沢BASEMENTBAR
    管理人 (11/20)
  • 絶対オイシかったって! 〜 11.14 URBANフェチ @下北沢BASEMENTBAR
    lucky (11/18)
  • URBANフェチをこよなく楽しみました 〜 8.04 URBANフェチ @下北沢BasementBar
    lucky (11/17)
  • URBANフェチをこよなく楽しみました 〜 8.04 URBANフェチ @下北沢BasementBar
    管理人 (08/10)
  • URBANフェチをこよなく楽しみました 〜 8.04 URBANフェチ @下北沢BasementBar
    うめこ (08/07)
  • ビークルのお面なかんじ
    写真の髪型 (06/06)
  • ビバ府中! 〜 4.14 nicco @府中Flight
    府中の不動産屋 (04/22)
  • 木村カエラはバンドです 〜 3.28 木村カエラ Synchronicity Tour 2013@NHKホール
    管理人 (04/02)
Trackback.

Profile
Calendar
SMTWTFS
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
<< July 2017 >>
kaela ticker
Sponsored links
blog chart
Links
Mobile
qrcode
Others
無料ブログ作成サービス JUGEM
Search